php-使用条件从另一个数组中设置值
我在php中有以下数组:php-使用条件从另一个数组中设置值,php,arrays,set,Php,Arrays,Set,我在php中有以下数组: [ { "idespecialidad": "001", "especialidad": "ALBAÑIL", "cantidad": "3", "codpais": "PE" }, { "idespecialidad": "006", "especialidad": "CHEF", "cantidad": "1", "
[
{
"idespecialidad": "001",
"especialidad": "ALBAÑIL",
"cantidad": "3",
"codpais": "PE"
},
{
"idespecialidad": "006",
"especialidad": "CHEF",
"cantidad": "1",
"codpais": "PE"
},
{
"idespecialidad": "003",
"especialidad": "ELECTRICISTA",
"cantidad": "2",
"codpais": "PE"
},
{
"idespecialidad": "009",
"especialidad": "PROGRAMADOR",
"cantidad": "1",
"codpais": "PE"
}
]
然后是另一个数组:
{
"001": [
{
"idespecialidad": "001",
"distancia": "2.3"
},
{
"idespecialidad": "001",
"distancia": "3.4"
},
{
"idespecialidad": "001",
"distancia": "10.0"
}
],
"006": [
{
"idespecialidad": "006",
"distancia": "6.9"
}
],
"003": [
{
"idespecialidad": "003",
"distancia": "8.3"
},
{
"idespecialidad": "003",
"distancia": "7.5"
}
],
"009": [
{
"idespecialidad": "009",
"distancia": "7.3"
}
]
}
我需要做的是获取distance
值(指定:最小值),并将其作为新的键设置到第一个数组中,具体取决于它是否具有相同的idespecialidad
像这样(哈罗德):
让$arr1作为第一个阵列,$arr2作为第二个阵列
<?php
foreach ($arr1 as $i => $x) {
$k = $x['idespecialidad'];
$min = findmin($arr2, $k);
$arr1[$i]['distancia'] = $min;
}
function findmin($data, $k)
{
$min = $data[$k][0]['distancia'];
for ($i = 1; $i < count($data[$k]); $i++) {
if ($data[$k][$i]['distancia'] < $min) {
$min = $data[$k][$i]['distancia'];
}
}
return $min;
}
太棒了!!非常感谢你。
<?php
foreach ($arr1 as $i => $x) {
$k = $x['idespecialidad'];
$min = findmin($arr2, $k);
$arr1[$i]['distancia'] = $min;
}
function findmin($data, $k)
{
$min = $data[$k][0]['distancia'];
for ($i = 1; $i < count($data[$k]); $i++) {
if ($data[$k][$i]['distancia'] < $min) {
$min = $data[$k][$i]['distancia'];
}
}
return $min;
}