Php 获取数组中的值键

Php 获取数组中的值键,php,arrays,Php,Arrays,我在检查数组中是否存在密钥时遇到som困难。我想做的是: if(array_key_exists('hello',$myArray)) { do stuff; } 或: 但我认为我这样做是错误的,或者类似的。我使用变量作为键名,所以当我设置数组键和值时,我会这样做: //myArray = an array with some random words foreach($myArray as $item) { if($item == 'hello') { //Cr

我在检查数组中是否存在密钥时遇到som困难。我想做的是:

if(array_key_exists('hello',$myArray)) {
   do stuff;
}
或:

但我认为我这样做是错误的,或者类似的。我使用变量作为键名,所以当我设置数组键和值时,我会这样做:

//myArray = an array with some random words
foreach($myArray as $item) {
    if($item == 'hello') {
        //Create a new array to put stuff in
        $myNewArray[$item] = 1;
    }
}
但是,如果我以后想检查键“hello”是否存在(为了它,在数组中再次使用变量):

那么,关于我做错了什么有什么想法吗?有什么好办法解决这个问题吗?请注意;我已经试着用它把指针放在单引号之间

更新:
在我的真实代码中使用var_dump()的一些输出--仍然不能真正理解它为什么不能正常工作?

函数
var_dump()
总能让您很好地了解数组中到底是什么。这将有助于调试代码。至于您的示例代码,我认为问题在于您正在检查
$myArray
,我认为您希望检查
$myNewArray

if(array_key_exists($item[0],$myNewArray)) {
    echo 'The key exists!';
} else {
    echo 'The key does not exists';
}
在你的最后一部分:

if(array_key_exists($item[0],$myArray)) {
    echo 'The key exists!';
} else {
    echo 'The key does not exists';
}
您正在$myArray中搜索,而不是在$myNewArray中搜索。但这可能不是您的实际代码。 如果您执行以下操作,您会在$myNewArray中看到哪些键:

print_r($myNewArray);

如果“hello”作为key存在,那么脚本应该回显“key exists!”

我认为您正在检查密钥对值。因此,“Hello”是值,“0”是键。尝试将阵列设置为:

$myArray = ('hello' => 'This is the value');

if (array_key_exists('hello',$myArray) {
echo 'I exist!';
}

试试看。

发现该值不是一个字符串,而是一个SimpleXML对象,这使得我无法比较它们(自然…)。初学者从我这方面犯了错误。

当然–我的坏=)这是我为本例编写的唯一代码,但问题仍然存在。好吧,我不知道出了什么问题,您的代码看起来不错。您是否已经尝试过使用
var\u dump()
来查找数组中的内容?乍一看一切正常。你做得很好:)一定有一些细节使你的代码失败。。。你们能提供完整的代码吗?正如一些人指出的——当然应该是“$myNewArray”,这是我的错误。但是,这只是示例代码–问题仍然存在。请看这里:,它解释了
isset
array\u key\u exists
之间的差异,您确定
$item
是数组吗?在实际分配任何内容之前,请尝试放置
$item=Array()
print_r($myNewArray);
$myArray = ('hello' => 'This is the value');

if (array_key_exists('hello',$myArray) {
echo 'I exist!';
}