2017-06-17 105 views
0

我已經嘗試過搜索,但我的問題在那裏沒有解決,因爲我的情況似乎有點不同。計算數組中的非空值(php)

這是我的數組:

array(14) { [0]=> array(4) { ["index"]=> int(1) ["name"]=> string(19) "Parge Lenis die ..." ["score"]=> int(0) ["time"]=> string(8) "05:51:23" } [1]=> array(4) { ["index"]=> int(2) ["name"]=> string(8) "jiengels" ["score"]=> int(0) ["time"]=> string(8) "05:51:18" } [2]=> array(4) { ["index"]=> int(3) ["name"]=> string(6) "n!n-oX" ["score"]=> int(0) ["time"]=> string(8) "05:47:27" } [3]=> array(4) { ["index"]=> int(4) ["name"]=> string(8) "Maraskan" ["score"]=> int(0) ["time"]=> string(8) "05:44:45" } [4]=> array(4) { ["index"]=> int(5) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "05:42:56" } [5]=> array(4) { ["index"]=> int(6) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "04:32:21" } [6]=> array(4) { ["index"]=> int(7) ["name"]=> string(5) "Heavy" ["score"]=> int(0) ["time"]=> string(8) "03:29:39" } [7]=> array(4) { ["index"]=> int(8) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "02:59:28" } [8]=> array(4) { ["index"]=> int(9) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "02:54:37" } [9]=> array(4) { ["index"]=> int(10) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "02:53:33" } [10]=> array(4) { ["index"]=> int(11) ["name"]=> string(6) "Fischi" ["score"]=> int(0) ["time"]=> string(8) "02:12:36" } [11]=> array(4) { ["index"]=> int(12) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "02:02:50" } [12]=> array(4) { ["index"]=> int(13) ["name"]=> string(0) "" ["score"]=> int(0) ["time"]=> string(8) "01:09:53" } ["count"]=> int(13) } 

一些條目沒有任何價值的「名字」 - 因此,我只想計算的,其中有一個名字。

但 「array_filter」 不幫我至少嘗試過如何使用它:(=> array_filter($ myarray的);

回答

3

您可以使用array_filter上的名字colume這樣,live demo

echo count(array_filter(array_column($array, 'name'))); 
+1

這對我有效!太棒了,謝謝你! –

+1

看到此消息後,我刪除了我的答案:P這是一個有用的方法來知道。 – WizardCoder

0

您可以使用array_filter()象下面這樣:

<?php 

$array = array(
      array("index" => 1, "name" => "Parge Lenis die ..." , "score" => 0, "time" => "05:51:23"), 
      array("index" => 2, "name" => "jiengels" , "score" => 0, "time" => "05:51:18"), 
      array("index" => 3, "name" => "n!n-oX" , "score" => 0, "time" => "05:47:27"), 
      array("index" => 4, "name" => "Maraskan" , "score" => 0, "time" => "05:44:45"), 
      array("index" => 5, "name" => "" , "score" => 0, "time" => "05:42:56"), 
      array("index" => 6, "name" => "" , "score" => 0, "time" => "04:32:21"), 
      array("index" => 7, "name" => "Heavy" , "score" => 0, "time" => "03:29:39"), 
     ); 

$array_non_empty = array_filter($array, function($item){ 
    return (isset($item['name']) && $item['name']) ? TRUE : FALSE; 
}); 

$count_non_empty = count($array_non_empty); // number of non-empty values 

echo $count_non_empty; 
+0

不幸的是沒有任何輸出中我需要一個數,如「5」 - 。如果有5項與名稱 –

+0

我更新了我的答案。你可以使用'count($ array_non_empty)'來計算非空值。 @MrKayodoubleu –