0

私はこのような多次元配列を持っています

Array
(
    [59] => stdClass Object
        (
            [id] => 59
            [parent_id] => 0
            [name] => detalles de los
            [order] => 1

        )

    [60] => stdClass Object
        (
            [id] => 60
            [parent_id] => 0
            [name] => Fechas varias
            [order] => 2

        )

    [62] => stdClass Object
        (
            [id] => 62
            [parent_id] => 0
            [name] => seccion de fechas dependientes
            [order] => 3

        )

    [63] => stdClass Object
        (
            [id] => 6
            [parent_id] => 0
            [name] => tabbbbb
            [order] => 5
            [children] => Array
                (
                    [61] => stdClass Object
                        (
                            [id] => 61

                            [parent_id] => 63
                            [name] => Números varios
                            [order] => 5

                        )

                    [70] => stdClass Object
                        (
                            [id] => 70
                            [parent_id] => 63
                            [name] => tablas22
                            [order] => 6

                            [children] => Array
                                (
                                    [58] => stdClass Object
                                        (
                                            [id] => 58
                                            [parent_id] => 70
                                            [name] => datos demograficos
                                            [order] => 4

                                        )

                                )

                        )

                )

        )

)

エントリ70を削除したい

[70] => stdClass Object
                        (
                            [id] => 70
                            [parent_id] => 63
                            [name] => tablas22
                            [order] => 6

しかし、私は子[58]を[61]の子にし、[70]を[61]の子にしたいのです。

どうすればいいですか?設定を解除しようとしましたが、機能していないようです

4

4 に答える 4

0

あなたは以下を試すことができます

unset($array[63]->children[70]);
于 2012-10-03T12:33:29.627 に答える
0

これを取り除くに70は:

unset $yourArray[63]['children'][70];

ノードキーは簡単に変更できないため、クローンを作成して古いキーの設定を解除する必要があります。つまり、エントリを「キーの再生成」58して61次のようにします。

$yourArray[61] = $yourArray[58];
unset( $yourArray[58] );
于 2012-10-03T12:34:11.993 に答える
0
$child58 = $array[63]->children[70]->children[58];
unset($array[63]->children[70]->children);

$child70 = $array[63]->children[70];
unset($array[63]->children[70]);

$array[63]->children[61]->children = array(58 => $child58, 70 => $child70);
于 2012-10-03T12:37:11.320 に答える
0

移動する必要のあるデータ構造があり、データ構造を表す実際のデータもあるため、問題は少し複雑です。たとえば、各stdClassには、有用な場所を指すparent_idプロパティがあります。

データ構造の修正は簡単かもしれませんが、この構造はどこかから来ているので、代わりにこのソースを変更する方が良いかもしれません。

ムーブメントについては、単にコピーして削除してください。

最初に[58]を新しい場所に移動します。

$array[63]->children[61]->children[58] = $array[63]->children[70]->children[58];
unset ($array[63]->children[70]->children[58]);

次に70を移動します。

$array[63]->children[61]->children[70] = $array[63]->children[70];
unset ($array[63]->children[70]);
于 2012-10-03T12:39:57.120 に答える