我的var_dump $ data看起来像这样。我正在遍历用户名,我需要获取值“ username1”
当我遍历$ key => $ value时,$ key返回一个整数。
array(1) {
["username1"]=>
array(2) {
["enum"]=>;
array(1) {
[1]=>;
array(1) {
["label"]=>;
bool(true)
}
}
["total"]=>;
int(20)
}
编辑1:这是我的代码
作业
foreach($keys as $key){
$this->data[] = array_fill_keys($keys,$this->getData($key, date('Y')));
}
函数getData
private function getData($key, $year)
{
return isset($this->datas[$key][$year]) ? $this->datas[$key][$year] : array();
}
循环访问值
foreach($this->data as $kpi=>$value)
{
var_dump($kpi);
}
解决方案:
问题出在这里
$this->data[] = array_fill_keys($keys,$this->getData($key, date('Y')));
data []数组具有整数索引。
通过$ this-> data [1]进行迭代可以得到键值。
但是,我觉得有更好的方法来解决这个问题,有人可以帮我改善这个问题吗?
答案 0 :(得分:-2)
很抱歉先前写评论作为答案。问题不清楚。
基本上,您尝试执行的关联数组的类型应如下所示。
‘$ keys = array(“ username1” => array(“ enum” =>(int)3,“ label” => true,“ total =>(int)20));'
因此,“ username1”的值将是“ enum”和“ label”的数组
最后,as $ key数组必须写成“ $ key [‘enum”] $ key ['label'] $ key ['total']就在foreach命令之后