我知道在PHP中有一个索引数组,如下所示:
$array = ("hello", "world")
与看起来像的关联数组相同:
$array = (0 => "hello", 1 => "world");
所以我的问题是这样的代码是否有效:
$hello = $array[$array["hello"]];
我的想法是它转化为
$hello = $array[0]
,等于
$hello = "hello"
。换句话说,将
$array["hello"]
等于0?
答案 0 :(得分:1)
不,您无法立即通过其值获取某个数组元素的键...除非您使用array_flip切换键和值:
$arr = array('hello', 'world');
$arr = array_flip($arr);
print $arr['hello']; // 0
答案 1 :(得分:1)
让我们来看看这个想法:
$array = ("hello", "world") // This is implicitly indexed by integer.
与:
相同$array = (0 => "hello", 1 => "world"); // Explicit indexing.
您可以通过print_r($array)
进行验证;在任何一种情况下,输出都会显示一个索引数组。 PHP数组都是关联的。即使您没有指定键,数组中的值也按整数索引号排序。
现在让我们来看看:
所以我的问题是这样的代码是否有效:
$hello = $array[$array["hello"]];
这是代码中断的地方。为什么呢?
$array["hello"]
不是有效值。这引用的是“索引”hello“中数组列表的值。
但是,array("hello", "world")
没有索引键“hello”。相反,它有一个值“hello”,它隐含了键索引0。
请务必阅读PHP arrays并了解:
$array['key']
或者在多维数据$array['firstlevelkey']['secondlevelkey']
的情况下等。返回的值将是key =&gt的值;该特定键的价值对。我希望这有用!
答案 2 :(得分:0)
不,因为“hello”不是$ array中的有效键。
您可以使用array_key_exists( key ,* array *)检查密钥是否存在