为了账号安全,请及时绑定邮箱和手机立即绑定

如果数组的键与另一个数组的键匹配,如何替换数组中的元素?

如果数组的键与另一个数组的键匹配,如何替换数组中的元素?

PHP
回首忆惘然 2023-04-15 20:50:51
我有两个长度相同的 txt 文件(每个文件 10 行)。一个文件具有 ID,另一个文件具有与每个 ID 关联的“评级”(0、1、2 等)。例如:文本 1 | 文本 2123 | 1234 | 2等我想在提供 ID 时替换评级。我所做的是搜索与提供的 ID 关联的键,当它与 ratings 数组中的键匹配时,我替换 ratings 数组中的相应值。因此,想法是在 ids (key=0) 中找到 '123' 的键,并将评级值替换为 key=0(在本例中为 1)以获得另一个值。我在函数中有以下内容:public function updateRating($disease, $id, $rating){    $filename = $disease.".txt";    $filename_2 = $disease."Ratings.txt";    $ids = file($filename);    $ratings = file($filename_2);    $index_ids = array_keys($ids, $id."\n");    $index_ratings = array_keys($ratings);    $size = count($ids);    for($i=0; $i<$size; $i++){        if($index_ratings[$i] == $index_ids){            $ratings = str_replace($ratings[$i], $rating."\n", $ratings);        }    }    $ratings_n = implode("", $ratings);    file_put_contents($filename_2, $ratings_n);    return array("debug2" => $index_ids, "debug3" => $index_ratings, "debug4" => $ratings);index_ids(提供的 ID 的键)被正确返回,但是评级数组($ratings)被返回,就好像什么都没有被替换一样。这段代码有什么问题,我怎样才能更正它来做我想做的事?
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

在您的函数中使用 array_search() 来获取密钥:

function replaceValue($value, $arr1, &$arr2){

    $key = array_search($value, $arr1);

    if($key === false){

        return false;

    }else{

        $arr2[$key] = $value;

        return true;

    }

}


if(replaceValue("baz", $arr1, $arr2)){

    print_r($arr2);

}else{

    echo "no match found";

}


Result:


Array

(

    [x] => bizz

    [y] => bazz

    [c] => baz

)


查看完整回答
反对 回复 2023-04-15
?
米脂

TA贡献1836条经验 获得超3个赞

您可以按照这种步骤来实现结果


<?php

$arr1 = [0 => '123', 1 => '234'];

$arr2 = [0 => 'a', 1 => 'b'];



for ($i=0; $i < sizeof($arr1) ; $i++) { 

    for ($i=0; $i < sizeof($arr1) ; $i++) { 

        if ($arr1[$i] == '123') {

            $arr2[$i] = 'abc';          

        }

    }

}

echo'<pre>';

print_r($arr2);

echo '<pre>';

?>

输出


Array

(

    [0] => abc

    [1] => b

)


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信