读取数组二维键


Read key of array two dimension

我试着读取数组的一些键,比如

数组(3){

["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"}}

post5 servicesessai

如果我使用:

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));