我似乎無法從以下的foreach代碼中得到任何結果。我似乎無法遞歸地運行數組,我不能讓這個數組的更小的數組。我只想從數組中挑選數據並將數據放在更小的數組中。使用foreach搜索php數組的特定值
PHP代碼
$ii = 0;
foreach ($array as $key => $value)
{
$vv = $value;
if($vv== 'Alpha')
{
$ii++;
$list[$ii]['info'] = $vv; // my new array
}
}
PHP的print_r($陣列)
Array
(
[0] => Array
(
[moredetails] => Array
(
[moredetails] => Array
(
[0] => Array
(
[productId] => 9999
[productName] => Name
[productType] => Alpha
[serialNumber] =>
[serviceItemId] => 123456
)
[1] => Array
(
[productId] => 8888
[productName] => Name
[productType] => Beta
[serialNumber] =>
[serviceItemId] => 123456
)
)
)
)
)
理想的結果
Array
(
[0]
(
[productID] => 9999
[productName] => Name
{productType] => Alpha
)
)
發現的解決方案!
function miniArray($array, &$simple, $ii)
{
foreach($array as $key => $value)
{
if(is_array($value)){
$ii++;
miniArray($value, $simple, $ii);
}
else
{
$simple[$ii][$key] = $value;
}
}
}
miniArray($service, $simple_array, 0);
'foreach'不會遞歸地通過數組循環。你必須爲此寫一個自定義函數。 – sgroves
這很有道理,爲什麼我沒有得到任何結果。沒有內置的PHP函數可以循環使用多個暗淡的數組? – Brutnus
不是真的,但如果您在array_key_exists,array_search等網頁上查看PHP手冊,則可以從中選擇多個遞歸數組搜索函數。 – adeneo