在php数组中搜索键和值

时间:2015-04-27 22:42:21

标签: php arrays

所以我有两个数组,第一个是:

$MyArray    = [
    ['id' => 1, number => 32],
    ['id' => 2, number => 4]
];

另一个是:

$OtherArray = [
    ['id' => 1, 'show' => X],
    ['id' => 5, 'show' => X]
];

X在哪里,我希望它与$ MyArray的'number'值相等,其中key'id'=其id。

如果没有$MyArray.id等于$OtherArray.id,那么它应该返回0.

我希望你理解我的意思。我尝试了所有的东西,但是,我没有成功。

1 个答案:

答案 0 :(得分:1)

您是否尝试在此处使用foreach循环?

以下是一个简单示例... PHPaste Snippet

<?php

$firstArray = array(
    array(
        "id" => 1,
        "something" => "Hello, World!"
    ),
    array(
        "id" => 3, // 3 on purpose
        "something" => "Hello, mom?"
    )
);

$secondArray = array(
    array(
        "id" => 1,
        "thing" => null
    ),
    array(
        "id" => 2,
        "thing" => null
    )
);

foreach ($firstArray as $key => $value) {
    foreach ($secondArray as $k => $v) {
        if ($value['id'] == $v['id']) {
            echo "Found one!\n------\n" . print_r($value, true) . "\ncontains the same ID as\n\n" . print_r($v, true) . "\n------\n";
            // you may also do this if you want
            // $secondArray[$k]['thing'] = $value['id'];
            // this would set "thing" (in the second array) to the value of "id" (in the first array)
        }
    }
}

编辑以下是第二个示例,展示了如何将其用作函数... PHPaste Snippet

注意:我使用 OLD 数组语法,因为新程序员更容易理解。

所以,基本上你正在做的是迭代$firstArray中的每个项目,将它与$secondArray中的每个项目进行比较,方法是在第一个{{1}内进行嵌套foreach。如果这有道理......?

以下是我刚才所说的简单形式:

foreach

您可能还会注意到我使用PHP的可爱函数print_r()。这会以稍微清晰的形式显示对象和数组。

您还可以看到我使用go through each item in array 1 --> compare it to each item in array 2 $value['id']从数组中获取值。这些在我的foreach声明$v['id']中定义; foreach ($firstArray as $key => $value)是一个associative array,因此您可以按键创建一个值,就像创建这样的数组一样:

$value

并抓住这样的值:

$myArray = [
    "id" => 1
];

希望这会有所帮助。