0

私は多次元配列を持っています(以下のようなもの)。やろうとしているのは、特定の値を見つけることです。その値に子がある場合は、それらの子のみをリストします。たとえば、slug の「test」を検索している場合、ページ上の「test's」のすべての子リストが表示されます。「Test2」には子がないため、何もリストされていません。「/test/sub」(スラッグ) を検索している場合、それには子があるため、すべての子 (「sh」、「rd」、「co」など) を表示したかったのです。これをどのように開始するか迷っているので、どんな助けでも大歓迎です。

    Array
    (
     [test] => Array
      (
        [children] => Array
         (
           [2] => Array
             (
               [parent] => 4
               [title] => Sub
               [slug] => test/sub/
               [id] => 2
               [children] => Array
               (
                 [3] => Array
                 (
                   [parent] => 2
                   [title] => sh 
                   [slug] => test/sub/sh
                   [id] => 3
                 )
                 [27] => Array
                 (
                   [parent] => 2
                   [title] => RD
                   [slug] => test/sub/rd
                   [id] => 27
                 )
                 [145] => Array
                 (                                     
                   [parent] => 2
                   [title] => cO
                   [slug] => test/sub/co
                   [id] => 145
                 )
               )
            )
            [8] => Array
            (
              [parent] => 4
              [title] => sub2
              [slug] => test/sub2
              [id] => 8
            )
            [19] => Array
            (
              [parent] => 4
              [title] => sub3
              [slug] => test/sub3
              [id] => 19
              [children] => Array
              (
                [20] => Array
                (
                 [parent] => 19
                 [title] => child1
                 [slug] => test/sub3/child1
                 [id] => 20
                )
                [21] => Array 
                (
                 [parent] => 19     
                 [title] => child2
                 [slug] => test/sub3/child2                                                                                          [id] => 21
                 )
               )
            )
4

1 に答える 1

1

Ok。これを回避する方法はありますが、それが最も効率的かどうかはわかりません。データベースにクエリを実行した後に取得するオブジェクトが $anObject であるとします。だから私たちはそうするでしょう、

for($i = 0;$i < 50;$i++){
if($anObject->test->children[$i]){
for($j = 0;$j < 200;$j++){
$slug = $anObject->test->children[$i]->$j->slug;
echo $slug;
}
}}

基本的に、$i の特定の値に対して特定のオブジェクトが存在するかどうかを確認し、次に $j の特定の値に対して値があるかどうかを確認します。整数の範囲がわかっている場合は、これらの値を変更できます。それを取得したら、それを $slug 変数で取得し、その部分にいくつかのプロシージャを追加して、この値を使用します。

これが役に立ったかどうか教えてください。

于 2012-11-16T15:26:39.337 に答える