我在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 :(得分:2)
$containers = array_unique(array_column($data, 'CONTAINER'));
$count = count($containers);
array_column
获取二维数组中的列。array_unique
从数组中删除重复项。count
计算数组中的所有元素。答案 1 :(得分: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;
答案 2 :(得分: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));
它会回声3。
答案 3 :(得分:0)
要获取所有CONTAINER
值,请执行以下操作:
$key = 'CONTAINER';
$containers = array_map(function($item) use ($key) {
return $item[$key];
}, $array);
print_r($containers);
如果您只是想知道有多少CONTAINER
个值,请在上述代码后执行count()
。
echo count($containers);