-3

親の子を取得する関数をコーディングしたいと思います。get_children子の配列を返すはず$this_parent_idです。

/* $pages array */

Array
(
    [0] => Pages Object
        (
            [id_page] => 1
            [str_title] => index
            [id_parent] => 0
        )

    [1] => Pages Object
        (
            [id_page] => 10
            [str_title] => download
            [id_parent] => 0
        )

    [2] => Pages Object
        (
            [id_page] => 11
            [str_title] => about us
            [id_parent] => 1
        )

    [3] => Pages Object
        (
            [id_page] => 12
            [str_title] => contact us
            [id_parent] => 1
        )

    [4] => Pages Object
        (
            [id_page] => 13
            [str_title] => members
            [id_parent] => 1
        )

)

条件が真の場合、子配列を配列にプッシュしたい。

print_r(get_children(1, $pages));
function get_children($this_parent_id, $family) {
    foreach($family as $page) {
        if ($page->id_parent == $this_parent_id) {
            /* here I need to append $page to $temp_array
        isset($temp_array) ? $temp_array = array($temp_array, (array)$page) : $temp_array = (array)$page; */
        }
    }
    return $temp_array;
}
4

3 に答える 3

0

array_push()お探しの機能はありますか?

function get_children($this_parent_id, $family) { 
    $temp_array = array(); 
    foreach($family as $page) {
        if ($page->id_parent == $this_parent_id) {
            array_push($temp_array, $page);
        }
    }
    return $temp_array;
}
于 2012-07-25T07:40:23.977 に答える
0
print_r(get_children(1, $pages));
function get_children($this_parent_id, $family)
{
    global $temp_array;
    foreach ($family as $page) {
        if ($page->id_parent == $this_parent_id) {
            isset($temp_array) ? $temp_array[] = (array) $page : $temp_array = array((array) $page);
        }
    }
    return $temp_array;
}
于 2012-07-25T08:01:48.867 に答える
0

エラーは、行の割り当てが原因である可能性があります

isset($temp_array) ? $temp_array = array($temp_array, (array)$page) : $temp_array = (array)$page; 

次の関数コードは問題なく動作するはずです。

function get_children($this_parent_id, $family)
{
   $temp_array = array();
    foreach ($family as $page) {
        if ($page->id_parent == $this_parent_id) {
            array_push($temp_array,$page);
        }
    }
    return $temp_array;
}
于 2012-07-25T08:06:05.170 に答える