我有以下格式的回復。我正在使用 Laravel。我想檢查是否有street_number存在或不存在,盡管他們的index,如果是只列印long_name
類似我想檢查是否有route在types這個陣列或不。如果是,則列印路線long_name等。
dd($dataArray); 給出這個回應
array:3 [
"html_attributions" => []
"result" => array:15 [
"address_components" => array:7 [
0 => array:3 [
"long_name" => "19"
"short_name" => "19"
"types" => array:1 [
0 => "street_number"
]
]
1 => array:3 [
"long_name" => "Becket Street South"
"short_name" => "Becket St S"
"types" => array:1 [
0 => "route"
]
]
2 => array:3 [
"long_name" => "senroy"
"short_name" => "Slenroy"
"types" => array:2 [
0 => "locality"
1 => "political"
]
]
]
我像這樣回圈
$newArray=[];
foreach($dataArray['result'] as $data){
// check if street_number in array or not if yes push it value to new array
//same for other types as well
}
uj5u.com熱心網友回復:
你的 foreach 內部有問題:應該是這樣的:
foreach($dataArray as $key=> $data){
if (in_array('street_number',$data['types'])) {
}
}
因為您的型別已經在foreach中的$data 中。所以你不需要再次說 $key 。
編輯1:
發現問題。洗掉,isset($data[$key])因為它總是錯誤的。因為 $key 回傳 0,1,.... 但是 $data 鍵是這三個: 'long_name' , 'short_name' , 'types' 。您可以通過dd($key)
編輯 2: 在您對問題進行最新更新后,您的 foreach 應該是這樣的:
foreach($dataArray['result']['address_components'] as $data){
if (in_array('street_number',$data['types'])) {
dd('should be here');
}
}
uj5u.com熱心網友回復:
可能這可以幫助你
foreach ($data['result']['address_components'] as $val) {
if(\Illuminate\Support\Arr::has($val, 'types') && in_array('street_number', $val['types'])) {
echo "For Street Nu.";
}else if(\Illuminate\Support\Arr::has($val, 'types') && in_array('route', $val['types'])) {
echo "For Route";
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326200.html
