所以我有两个数组,第一个是:
$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.
我希望你理解我的意思。我尝试了所有的东西,但是,我没有成功。
答案 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
];
希望这会有所帮助。