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