我有這個PHP數組:PHP計數陣列列
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', NULL));
,如果我用這個函數:
$rows = count($food);
當然
結果將是2,但如何讓陣列列數?所以,我期待3作爲水果和素食列的價值。即使veggie有NULL。
我有這個PHP數組:PHP計數陣列列
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', NULL));
,如果我用這個函數:
$rows = count($food);
當然
結果將是2,但如何讓陣列列數?所以,我期待3作爲水果和素食列的價值。即使veggie有NULL。
...我的意思是,如果列始終是相同的,那我們爲什麼要循環播放多達行?
如果列數始終是相同的,你有你的$food
陣列的至少一個元素,你可以只探頭current()
$columns = count(current($food));
這種做法會造成計數組成的數組,按類型:
$rows = [];
foreach ($food as $type => $items) {
$rows[$type] = count($items);
]
嗨,兄弟,謝謝你的回答。但是,有沒有其他的方法來計算沒有foreach循環的列?我的意思是,如果列總是相同的,那我們爲什麼要循環多行? –
第一/當前元素你可以試試這個:
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', NULL));
echo count($food['fruits']);
然而,它只會在你知道元素例如'水果'。
您可以試試這個:array_map
與count
。
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', NULL));
$typeTotals = array_map("count", $food);
echo "<pre>";
print_r($typeTotals);
OUTPUT:
陣列( [水果] => 3 [素] => 3)
我也會這樣回答,如果列是鋸齒狀的,我還會添加'max'。 'echo max(array_map('count',$ food));',無論如何+1 – Ghost
@Ghost但我猜他是期待在輸出中的兩個鍵。 –
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', NULL));
$array = array_map('count', $food);
可能的[計數每個子陣列中的元件的重複在PHP](http://stackoverflow.com/questions/17496371/count-elements-in-each-sub-array-in-php) – Trix