0

次の配列があります。唯一の値は、子ページの ID (この場合は 35) です。私は親を取得しようとしているので、さらに子がいる場合はすべての子をループできます (この場合は 34 を探しています)。

[34] => Array
    (
        [id] => 34
        [label] => Over Ons
        [type] => page
        [url] => 8
        [children] => Array
            (
                [0] => Array
                    (
                        [id] => 35
                        [label] => Algemeen
                        [type] => page
                        [url] => 9
                    )

            )

    )

誰かがこれに対する良い解決策を持っていますか?

前もって感謝します。

4

3 に答える 3

0

試してみてください:

$input    = array( /* your data */ );
$parentId = 0;
$childId  = 35;

foreach ( $input as $id => $parent ) {
  foreach ( $parent['children'] as $child ) {
    if ( $child['id'] == $childId ) {
      $parentId = $id;
      break;
    }
  }
  if ( $parentId ) {
    break;
  }
}

または関数で:

function searchParent($input, $childId) {
  foreach ( $input as $id => $parent ) {
    foreach ( $parent['children'] as $child ) {
      if ( $child['id'] == $childId ) {
        return $id;
      }
    }
  }
}

$parentId = searchParent($input, $childId);
于 2013-07-23T10:20:55.527 に答える