我试着读取数组的一些键,比如
数组(3){post5 , services, essai["poste5:"]=> array(3) {[0]=> string(7)"APPLE:" [1]=> string(5)"demo1" [2]=> string(5)"demo2"}
["services:"]=> array(4) {[0]=> string(9)"橙色"[1]=>字符串(5)"demo3" [2]=> string(5)"demo4" [3]=> string(5)"demo1"}
["essai:"]=> array(2) {[0]=> string(6)"sd"}}
如果我使用:
foreach ($this->aliasRead as $key => $value){
echo array_keys($this->aliasRead[$key]);
}
Array()但是如果我使用:
foreach (array_keys($this->aliasRead) as $key => $value2) {
echo $value2;
}
我poste5 , 服务, essai
我尝试使用这个循环foreach ($this->aliasRead as $key => $value){因为我之后还有另一个治疗。如何在这个循环中收集我的第一个循环的这个键foreach ($this->aliasRead as $key => $value){ ?
你已经有你想要的了:
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。
试试这个,
$keys = array_keys($this->aliasRead);
print_r($keys);
或
$keys = array();
foreach ($this->aliasRead as $key => $value){
$keys[] = $key;
}
这是因为您正在尝试echo
数组。这将总是给你字符串"Array"。如果您想查看数组的内容,请尝试
var_dump(array_keys($this->aliasRead[$key]));
顺便说一下,在你发布的foreach
语句中,$this->aliasRead[$key]
将等于$value
。这样也可以:
var_dump(array_keys($value));