读取数组二维的键

时间:2013-06-10 12:04:24

标签: php arrays foreach array-key

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

  

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

3 个答案:

答案 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。