2

这是我的原始数组:

Array ( [0] => pid [1] => pname [2] => paddress [3] => pphone)

使用后array_flip,它变成了这个,这就是我想要的:

Array ( [pid] => 0 [pname] => 1 [paddress] => 2 [pphone] => 3)

但是,我似乎无法再使用该数组了。当我尝试遍历每个项目时,我得到未定义的偏移量。

4

3 回答 3

1

如果在翻转数组之前使用了 for 循环,它将不再起作用,因为数组变成了关联数组。您可以使用foreach($array as $k => $v )循环,它应该可以工作。

for 循环仅适用于数字索引的数组。

for($i=0;$i<count($array);$i++)
{
  echo $array[$i];
}

foreach 用于关联数组。

foreach($array as $k => $v)
{
  echo $k.'=>'.$v;
}

编辑:您也可以使用带有数字索引数组的 foreach 数组。

于 2013-10-03T16:18:02.110 回答
0

使用 foreach 循环数组

 foreach($array as $key => $value){
    echo "key=$key"."</br>";
    echo "value=$value";
    }
于 2013-10-03T16:14:47.663 回答
0

当然,如果您尝试通过字符串键访问它,那么它将抛出错误“未定义的偏移量 x”。

您需要确保如果您通过循环运行它,那么您需要指定键和值:

foreach($array as $key => $value){
    // do stuff
}

或者,如果您愿意,您可以在不执行循环的情况下获取值/键,这可能是更有效的方法:

$keys = array_keys($array);
$values = array_values($array);

$x = array_flip($array);
$flipped_keys = array_keys($x);
$flipped_values = array_values($x);
echo $x[$flipped_keys[0]];

希望这会有所帮助

于 2013-10-03T16:22:38.507 回答