這個問題在這里已經有了答案: PHP關聯陣列重復鍵 (6個答案) 昨天關門。
我的 php 代碼中有一個陣列
$list = array(
'RETAIL' => 'SUPERMARKET'
'RETAIL' => 'BAR'
'RETAIL' => 'DEP. MARKET'
'BUSINESS' => 'HOTEL'
'BUSINESS' => 'PUB'
'OTHER' => 'GROCERY'
'OTHER' => 'BUTCHERY'
// I have 20 items
);
foreach( $list as $type => $name ){
var_dump($type,$name);
}
//var_dump() output
// RETAIL SUPERMARKET
// BUSINESS HOTEL
// OTHER BUTCHERY
我面臨的問題是,當我嘗試回圈陣列時,只會回傳三個值,其余的被忽略。我該如何解決這個問題?我正在嘗試回圈陣列以將資料保存到自定義 wordpress 資料庫中。以同樣的方式,我成功地回圈了另一個陣列,將鍵和值插入到資料庫中。
uj5u.com熱心網友回復:
我認為您的陣列的更好結構是這樣的
$list = [
'RETAIL' => [
'BAR',
'RESTAURANT'
]
];
你可以像這樣回圈
foreach ($list as $businessType => $businesses) {
foreach ($businesses as $business) {
echo "<li>{$business}</li>";
}
}
只是一個例子
uj5u.com熱心網友回復:
作為處理每條資料有多個元素的實體的一般方法(即使它可能不在這樣的樹結構中),您應該將串列中的每個專案構造為陣列或物件,例如:
$list_of_arrays = [
['RETAIL', 'SUPERMARKET'],
['RETAIL', 'BAR'],
['RETAIL', 'DEP. MARKET'],
];
foreach( $list_of_arrays as $array ){
echo "<li>{$array[0]} {$array[1]}</li>";
}
或者
$list_of_objects = [
(object)['type' => 'RETAIL', 'subtype' => 'SUPERMARKET'],
(object)['type' => 'RETAIL', 'subtype' => 'BAR'],
(object)['type' => 'RETAIL', 'subtype' => 'DEP. MARKET'],
];
foreach( $list_of_objects as $object ){
echo "<li>{$object->type} {$object->subtype}</li>";
}
uj5u.com熱心網友回復:
也許我展示了很多,但由于每個物體只有兩個資料,為什么你的表沒有像這樣在基礎上構建......?
$list = array(
'SUPERMARKET'=>'RETAIL',
'BAR'=>'RETAIL',
'DEP. MARKET'=>'RETAIL',
'HOTEL'=>'BUSINESS',
'PUB'=>'BUSINESS',
'GROCERY'=>'OTHER',
'BUTCHERY'=>'OTHER'
// I have 20 items
);
您確實有唯一標識物體的鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515780.html
