遞歸函數不太好。我閱讀了所有的論壇,並試圖圍繞需要完成的事情,我無法得到它,而且我的時間不夠了。所以我需要尋求幫助。我有以下數組。我試圖讓所有公司都在一個層面上。所以返回的結果是,第一個元素將是元素0,那麼all_child_companies下的第一個節點將是元素1等遞歸。Php - 遞歸遞歸函數,以獲得父級的所有節點
<?php
// array(
// 'id' => '1',
// 'name' => 'Company 1',
// 'address_id' => '15',
// 'emp_size' => '0',
// 'parent_id' => '0',
// 'is_beta' => '0',
// 'owner_id' => '1',
// 'created_at' => '2015-04-02 03:25:32',
// 'updated_at' => '2015-04-02 03:25:32',
// 'deleted_at' => NULL,
// 'industry' => '',
// 'avatar_file_name' => NULL,
// 'avatar_file_size' => NULL,
// 'avatar_content_type' => NULL,
// 'avatar_updated_at' => NULL,
// 'address' => array(
// 'id' => '15',
// 'street1' => '111 something street',
// 'street2' => '',
// 'street3' => '',
// 'city' => 'houston',
// 'state' => '0',
// 'zip' => '',
// 'created_at' => '2015-04-02 03:25:32',
// 'updated_at' => '2015-04-02 03:25:32',
// 'deleted_at' => NULL,
// 'address_id' => '0',
// 'address_type' => '',
// 'country' => ''
// ),
// 'all_child_companies' => array(
// 0 => array(
// 'id' => '2',
// 'name' => 'Company 1',
// 'address_id' => '16',
// 'emp_size' => '55',
// 'parent_id' => '1',
// 'is_beta' => '1',
// 'owner_id' => '1',
// 'created_at' => '2015-04-02 03:25:32',
// 'updated_at' => '2015-04-02 03:25:32',
// 'deleted_at' => NULL,
// 'industry' => '',
// 'avatar_file_name' => NULL,
// 'avatar_file_size' => NULL,
// 'avatar_content_type' => NULL,
// 'avatar_updated_at' => NULL,
// 'address' => array(
// 'id' => '16',
// 'street1' => '222 something street',
// 'street2' => '',
// 'street3' => '',
// 'city' => 'tucson',
// 'state' => '0',
// 'zip' => '',
// 'created_at' => '2015-04-02 03:25:32',
// 'updated_at' => '2015-04-02 03:25:32',
// 'deleted_at' => NULL,
// 'address_id' => '0',
// 'address_type' => '',
// 'country' => ''
// ),
// 'all_child_companies' => array(
// 0 => array(
// 'id' => '3',
// 'name' => 'Company 2',
// 'address_id' => '17',
// 'emp_size' => '15',
// 'parent_id' => '2',
// 'is_beta' => '0',
// 'owner_id' => '1',
// 'created_at' => '2015-04-02 03:25:32',
// 'updated_at' => '2015-04-02 03:25:32',
// 'deleted_at' => NULL,
// 'industry' => '',
// 'avatar_file_name' => NULL,
// 'avatar_file_size' => NULL,
// 'avatar_content_type' => NULL,
// 'avatar_updated_at' => NULL,
// 'address' => array(
// 'id' => '17',
// 'street1' => '333 something street',
// 'street2' => '',
// 'street3' => '',
// 'city' => 'tempe',
// 'state' => '0',
// 'zip' => '',
// 'created_at' => '2015-04-02 03:25:32',
// 'updated_at' => '2015-04-02 03:25:32',
// 'deleted_at' => NULL,
// 'address_id' => '0',
// 'address_type' => '',
// 'country' => ''
// ),
// 'all_child_companies' => array(
// 0 => array(
// 'id' => '4',
// 'name' => 'Company 3',
// 'address_id' => '19',
// 'emp_size' => '100',
// 'parent_id' => '3',
// 'is_beta' => '0',
// 'owner_id' => '0',
// 'created_at' => '2015-04-02 05:24:34',
// 'updated_at' => '2015-04-02 05:24:34',
// 'deleted_at' => NULL,
// 'industry' => '',
// 'avatar_file_name' => NULL,
// 'avatar_file_size' => NULL,
// 'avatar_content_type' => NULL,
// 'avatar_updated_at' => NULL,
// 'address' => array(
// 'id' => '19',
// 'street1' => '333 something street',
// 'street2' => '',
// 'street3' => '',
// 'city' => 'phoenix',
// 'state' => '0',
// 'zip' => '85042',
// 'created_at' => '2015-04-02 05:24:34',
// 'updated_at' => '2015-04-02 05:24:34',
// 'deleted_at' => NULL,
// 'address_id' => '0',
// 'address_type' => '',
// 'country' => 'United States Of America'
// ),
// 'all_child_companies' => array(
//
// )
// )
// )
// )
// )
// )
// )
//)
非常感謝您的幫助。
我知道這不工作,但它是我不斷正在添加了..
/**
* @param $needle_key
* @param $array
* @return bool
*/
public static function array_search_key($needle_key = 'all_child_companies', $array)
{
if(isset($array['all_child_companies']) && !empty($array['all_child_companies'])){
return self::array_search_key($needle_key, $array['all_child_companies']);
}
foreach ($array AS $key => $value) {
if ($key == $needle_key) return $value;
if (is_array($value)) {
if (($result = self::array_search_key($needle_key, $value)) !== false)
return $result;
}
}
return false;
}
到目前爲止您試過了什麼?向我們顯示您當前的代碼:) – 2015-04-04 15:10:16
我用代碼示例更新了問題。林不知道,如果論壇通知每個人的更新.. – 2015-04-04 15:24:50
它通知。在我的腦海中,你需要一個foreach來完成你想要的東西。 – 2015-04-04 15:28:46