我尝试读取数组的一些键,如
array(3){
[" poste5:"] => array(3){[0] =>字符串(7)" APPLE:" [1] =>串(5) " demo1的" [2] => string(5)" demo2" }
["服务:"] => array(4){[0] => string(9)" orange" [1] => string(5)" demo3" [2] => string(5)" demo4" [3] => string(5)" demo1" }
[" essai:"] => array(2){[0] => string(6)" sd" }}
我尝试读取此名称: poste5 ,服务, essai
如果我使用:
foreach ($this->aliasRead as $key => $value){
echo array_keys($this->aliasRead[$key]);
}
我有:数组()
但如果我使用:
foreach (array_keys($this->aliasRead) as $key => $value2) {
echo $value2;
}
我有 poste5 ,服务, essai
我尝试使用此循环 foreach($ this-> aliasRead as $ key => $ value){ 因为我之后有另一种特质。 如何在此循环中收集我的第一个循环的键 foreach($ this-> aliasRead as $ key => $ value){?
答案 0 :(得分:1)
试试这个,
$keys = array_keys($this->aliasRead);
print_r($keys);
或者
$keys = array();
foreach ($this->aliasRead as $key => $value){
$keys[] = $key;
}
答案 1 :(得分:1)
这是因为你正试图echo
一个数组。这将始终为您提供字符串“Array”。如果要查看数组的内容,请尝试
var_dump(array_keys($this->aliasRead[$key]));
顺便说一下,在您发布的foreach
声明中,$this->aliasRead[$key]
将等于$value
。所以这也会起作用:
var_dump(array_keys($value));
答案 2 :(得分:1)
你已经拥有了你想要的东西:
foreach ($this->aliasRead as $key => $value){
echo $key; // key of the value in the array
print_r($value); // value of $this->aliasRead[$key] which in turn is another array
}
编辑:第二个循环工作的原因是:array_keys($this->aliasRead[$key])
返回一个新数组,其中包含旧数组的键作为其值。因此$myNewArray = array_keys($this->aliasRead[$key])
与$myNewArray = array('poste5','services','essai')
相同。所以,当你像这样循环这个新数组时:
foreach ($myNewArray as $key => $value2) {
echo $value2;
}
$value2
包含您的值,这是您的第一个数组的键,$key
在循环的每个步骤后将为0,1和2。