这是我的原始数组:
Array ( [0] => pid [1] => pname [2] => paddress [3] => pphone)
使用后array_flip
,它变成了这个,这就是我想要的:
Array ( [pid] => 0 [pname] => 1 [paddress] => 2 [pphone] => 3)
但是,我似乎无法再使用该数组了。当我尝试遍历每个项目时,我得到未定义的偏移量。
如果在翻转数组之前使用了 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 数组。
使用 foreach 循环数组
foreach($array as $key => $value){
echo "key=$key"."</br>";
echo "value=$value";
}
当然,如果您尝试通过字符串键访问它,那么它将抛出错误“未定义的偏移量 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]];
希望这会有所帮助