2016-05-17 78 views
0

具有相同的價值我有一個這樣的陣列上的PHP:創建元素總價值爲基礎,在數組PHP

Array 
(
[0] => Array 
    (
     [CONSIGNEE] => PT. XX 
     [CONTAINER] => DFSU1587848 

    ) 

[1] => Array 
    (
     [CONSIGNEE] => PT. YYY 
     [CONTAINER] => TEMU2365554 
    ) 

[2] => Array 
    (
     [CONSIGNEE] => PT. ZZZ 
     [CONTAINER] => CBHU5788073 

    ) 

[3] => Array 
    (
     [CONSIGNEE] => PT. HHH 
     [CONTAINER] => CBHU5788073 
    ) 

[4] => Array 
    (
     [CONSIGNEE] => PT. OOO 
     [CONTAINER] => CBHU3884376 
    ) 
) 

在元素CONTAINER請參閱。

我怎麼能知道,那些陣列上只是有4項容器,也就是,

DFSU1587848, TEMU2365554, CBHU5788073, CBHU3884376. 

如果PHP有一個這樣的內置函數?

+0

我可以理解你錯了,但不會'if(count($ array)== 4){'做你想做的事? – Peter

+0

我只想對用戶說,你有4個容器。我只需要這封信「4」 –

回答

0

這是有點不清楚你問什麼 - 從我的理解,你想創建一個數組與CONTAINER值在這個數組中。

您可以通過數組循環以及將這些值到一個新的陣列,像這樣做:

//Set up new array 
$containers = []; 

//Loop through existing array 
foreach($array as $a){ 

    //See if this array has a "container" key 
    if($a["CONTAINER"]){ 

     //Push the new Container value to the $containers array 
     $containers[] = $a["CONTAINER"]; 

    } 

} 

//Output the finished product 
print_r($containers); 

一旦做到這一點,算元素與CONTAINER鍵的號碼:

$num = count($containers); 

對於剛剛CONTAINER密鑰的計數:

$n = 0; 
foreach($array as $a){ 
    if($a["container"]) $n++; 
} 

echo $n; 
+0

我只想對用戶說,你有4個容器。我只需要這封信「4」 –

+0

@FadlyDzil看我的編輯。 – Ben

0

您可以使用,一個array_map

$yourArray = [ 
    ['x' => 'a', 'CONTAINER' => 'aa'], 
    ['x' => 'a', 'CONTAINER' => 'bb'], 
    ['x' => 'a', 'CONTAINER' => 'cc'], 
    ['x' => 'a', 'CONTAINER' => 'aa'], 
    ['x' => 'a', 'CONTAINER' => 'aa'], 
    ['x' => 'a', 'CONTAINER' => 'bb'], 
]; 


$arr = array_unique(array_map(function($x){ return $x['CONTAINER']; }, $yourArray)); 
echo (count($arr)); 

ITT將回聲3.

0

要獲得所有CONTAINER值做到以下幾點:

$key = 'CONTAINER'; 
$containers = array_map(function($item) use ($key) { 
    return $item[$key]; 
}, $array); 

print_r($containers); 

如果你只是想知道有多少CONTAINER值,在上面的代碼後面做count()

echo count($containers); 
2
$containers = array_unique(array_column($data, 'CONTAINER')); 
$count = count($containers); 
  1. array_column得到以2維陣列的一列。
  2. array_unique刪除數組中的重複項。
  3. count統計數組中的所有元素。
+0

謝謝,它對像我這樣的初學者非常有幫助 –