我試圖用foreach循環中的變量$numberOfFoods
更新每個鍵在關聯數組中保存的元素數。這裏是我的代碼:如何計算每個鍵在PHP中的關聯數組中保留的元素數?
$foodsArray = array (
'France' => ['Souffle' , 'Baguette' , 'Fois gras'],
'England' => ['Bangers and mash' , 'Tea and biscuits'],
'America' => ['Hamburger', 'Steak and Eggs', 'Texas chili']
);
$countriesByCuisine = array();
foreach ($foodsArray as $originCountry => $countryAssocFood) {
$numberOfFoods = count(array_values($foodsArray));
for ($countryAssocFoodIndex = 0; $countryAssocFoodIndex < $numberOfFoods; $countryAssocFoodIndex++) {
$countriesByCuisine[$countryAssocFood[$countryAssocFoodIndex]] = $originCountry;
}
}
foreach (array_keys($countriesByCuisine) as $foodFromCountry) {
echo $foodFromCountry . ', From ' . $countriesByCuisine[$foodFromCountry] . '. ';
}
正因爲如此,這個代碼只需將$numberOfFoods
變量設置爲整數3,而不是更新的數量,以反映當前的密鑰保存值的數量。我的這個代碼的總體目標是學習如何轉換數組,使得這些值成爲新數組中的鍵,並且這些鍵將其前一個鍵保存爲值。請原諒我亂七八糟的代碼,因爲我對編程和PHP很新穎。
'array_flip'會爲你做 –
你能給你想要什麼結果的例子看起來像? – Phil
我的原始目標(使$'numberOfFoods = count(array_values($ countryAssocFood));'的建議符合我的原始目標,這將改變$ foodsArray = array(''''Souffle','Baguette' ,'Fois gras'], 'England'=> ['Bangers and mash','Tea and biscuits'], 'America'=> ['Hamburger','Steak and Eggs','Texas chili']' into'$ countriesByCuisine = array('Souffle'=>'France','Baguette'=>'France');'等等''以前的所有值'$ foodsArray'。 – theotheransel