在下面的代碼我得到的輸出打印時它爆炸
Array ([0] => 1 [1] => 2)
但預期輸出數組是
Array ([0] => 1 [1] => 2 [2] => 3) Array ([0] => 1 [1] => 2)
爲什麼總是執行第二如果條件?儘管第一個條件也是如此。 這是我試圖
<?php
$test_arr=array();
$temp_option_arr=array();
$option_arr=array();
$options_array_val = Array (0 => "animals:1", 1 => "animals:2", 2 => "animals:3", 3 => "birds:1", 4 => "birds:2");
foreach($options_array_val as $options_val)
{
$search_filter = explode(":", $options_val);
print_r($search_filter);
if(!in_array($search_filter[0],$option_arr))
{
array_push($temp_option_arr,$search_filter[1]);
array_push($option_arr,$search_filter[0]);
$temp_option_arr=array();
}
array_push($temp_option_arr,$search_filter[1]);
}
$test_arr[$search_filter[0]]=$temp_option_arr;
$find_species = array();
if(!empty($test_arr['animals']))
{
$find_species = $test_arr['animals'];
print_r($find_species);
}
if(!empty($test_arr['birds']))
{
$find_species = $test_arr['birds'];
print_r($find_species);
}
?>
你爲什麼'$ test_arr [$ search_filter [0] = $ temp_option_arr;''後foreach'結束? –
你在代碼的第一部分清除了'$ temp_option_arr',所以它沒有任何關於「動物」的東西。當你退出第一個循環時。也許你應該說出你正在努力達到的目標,因爲這可以通過5行代碼解決方案來完成。 – trincot