多维数组中的 PHP 字符串比较

3
我有两个多维数组。
Array
(
[0] => Array
    (
        [code] => 2079
        [label] => Nike
    )

[1] => Array
    (
        [code] => 1080
        [label] => Adidas
    )    
)

Array
(
[0] => Array
    (
        [manufacturers_id] => 2753
        [manufacturers_name] => Reebok
    )

[1] => Array
    (
        [manufacturers_id] => 2526
        [manufacturers_name] => Adidas
    )

[2] => Array
    (
        [manufacturers_id] => 34
        [manufacturers_name] => Nike
    )

)

我希望对数组1中的键label和数组2中的键manufacturer_name进行字符串匹配。在多维数组中,最好的方法是什么?


1
由于这是一个多维数组,大小不同,因此需要两个foreach循环和一对一匹配。 - Murad Hasan
3个回答

0
你可以遍历数组。
foreach ($multi_array1 as $value) {  
    foreach ($multi_array2 as $value2) {
      If ($value[label] === $value2 [manufacturer_name])
   {}
 }
}

0
如果您想通过 labelmanufacturers_name 进行匹配,那么我建议您按照这些字段重新索引您的数组:
$by_label = [];
foreach($first_array as $element) {
    $by_label[$element['label']] = $element['code'];
}

$by_name = [];
foreach($second_array as $element) {
    $by_label[$element['manufacturers_name']] = $element['manufacturers_id'];
}

foreach($by_label as $label => $code) {
    print "Label is $label, code is $code, id is {$by_name[$label]}";
}

foreach($by_name as $name => $id) {
    print "Name is $name, id is $id, label is {$by_label[$name]}";
}

0
只需使用 foreach 即可实现您所期望的结果。 数组
$firstArr = array(
        array("code" => 2079, "label" => 'Nike'),
        array("code" => 1080, "label" => 'Adidas')
    );

$secArr = array(
        array("manufacturers_id" => 2753, "manufacturers_name" => 'Reebok'),
        array("manufacturers_id" => 2526, "manufacturers_name" => 'Adidas'),
        array("manufacturers_id" => 34, "manufacturers_name" => 'Nike')
    );

循环技术:

foreach($firstArr as $value){
    if(in_array_sec($value['label'])){
        echo $value['label'].' found in second array.';
    }else{
        echo $value['label'].' not found in second array.';
    }
}

function in_array_sec($val_one){
    global $secArr;
    $flag = false;

    foreach($secArr as $value){
        if($value['manufacturers_name'] == $val_one){
            $flag = true;
            break;
        }
        else
            $flag = false;
    }
    return $flag;
}

结果:

在第二个数组中找到了 Nike。

在第二个数组中找到了 Adidas。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接