2016-05-17 74 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

谢谢,它对像我这样的初学者非常有帮助 –