Php 对于每个父项,有多少个特定项的子项?

Php 对于每个父项,有多少个特定项的子项?,php,arrays,variables,Php,Arrays,Variables,我在概念上理解如何循环这个数组来创建2个变量时遇到了问题。一个包括父项[符号],另一个包括该符号存在的子项日期[日期] 'AMLP' => array (size=3) 'id' => string '2432' (length=4) 'symbol' => string '.AMLP' (length=14) 'dates' => array (size=1) 0 => stri

我在概念上理解如何循环这个数组来创建2个变量时遇到了问题。一个包括父项[符号],另一个包括该符号存在的子项日期[日期]

 'AMLP' => 
    array (size=3)
      'id' => string '2432' (length=4)
      'symbol' => string '.AMLP' (length=14)
      'dates' => 
        array (size=1)
          0 => string '2019-09-13' (length=10)
  'ARCC' => 
    array (size=3)
      'id' => string '2417' (length=4)
      'symbol' => string '.ARCC' (length=14)
      'dates' => 
        array (size=1)
          0 => string '2019-09-13' (length=10)
          1 => string '2019-09-13' (length=10)
          2 => string '2019-09-10' (length=10)
          3 => string '2019-09-10' (length=10)
我正在尝试创建两组数据,并将它们打印成如下所示:

[AMPL,ARCC]
[1,4]
$counts将是这样的

// $count = ["AMLP" => 1 , "ARCC" => 4];
echo "[" . implode(",", array_keys($counts)) . "]";
echo "[" . implode(",", $counts) . "]";
//prints
//[AMLP,ARCC]
//[1,4]
现场演示

编辑: 如果您确实想要这个字符串
[AMLP,ARCC]
,您可以这样做

// $count = ["AMLP" => 1 , "ARCC" => 4];
echo "[" . implode(",", array_keys($counts)) . "]";
echo "[" . implode(",", $counts) . "]";
//prints
//[AMLP,ARCC]
//[1,4]

正式地说,您可以使用以下代码:

$keys = array_keys($array);
$counts = [];
foreach($array as $arr){
    $counts[] = count($arr["dates"]);
}

但是最好存储代码和计数之间的关系。这就是为什么另一个答案更合适的原因。

我想我以前有过这个答案,但只要把它打印成两个变量就行了。出于某种原因,我在这里留白。您是否需要完全相同的字符串
“[AMLP,ARCC]”
?好的,我会更新一下答案的。一个一个。它是附加创建单独的变量吗?因为我不能提交一个字符的编辑,我认为最后第二行的“AMPL”是一个拼写错误?