Php 如何根据数组或json的值更改它们?

Php 如何根据数组或json的值更改它们?,php,arrays,json,Php,Arrays,Json,我有一个json,我改为数组 $asm1n = json_decode($asm_1); print_r ($asm1n); 结果是 数组([0]=>2[1]=>3) 我的问题是如何更改基于静态值的it值: 如果是,1换成橙色,2换成苹果,3换成芒果 当前,json中的值如下所示: ["2","3"] 我想知道的是,如果上面的值自动更改为: ["apple","mango"] 我尝试使用下面的代码,但我认为这是错误的: if ($asm1n == ["1","2","3"]){ $

我有一个json,我改为数组

$asm1n = json_decode($asm_1);
print_r ($asm1n);
结果是

数组([0]=>2[1]=>3)

我的问题是如何更改基于静态值的it值: 如果是,1换成橙色,2换成苹果,3换成芒果

当前,json中的值如下所示:

["2","3"]
我想知道的是,如果上面的值自动更改为:

["apple","mango"]
我尝试使用下面的代码,但我认为这是错误的:

if ($asm1n == ["1","2","3"]){
    $asm1n = "["orange","apple","mango"]";
}
所有这些数据都来自数据库,它可能有这样的值[“2”,“3”],[“1”,“2”,“3”],[“1”,“3”]


如何将数字更改为我前面说过的值?自动或通过if条件?

您可以在数组中循环并相应地更改它

$fruits=[
1=>“橙色”,
2=>“苹果”,
3=>“芒果”
];
foreach($asm1n as和$value){
foreach($key=>$fruit的水果){
如果($value==$key){
$value=水果;
}
}
}
试试这个:

$asm1n = ["2", "3"];

$data = array();
foreach( $asm1n as $key => $value ) {
  if ( "1" === $value ) {
    $data[] = "orange";
  } elseif ( "2" === $value ) {
    $data[] = "apple";
  } elseif ( "3" === $value ) {
    $data[] = "mango";
  }
}

print_r($data);

您只需要确保您拥有这些值并使用它们来获得输出

$myValues = [
    1 => "orange",
    2 => "apple",
    3 => "mango"
];

$rawValues = json_decode($asm_1);

$asm1n = [];

foreach ($rawValues as $value) {
    $asm1n[]=$myValues[$value];
}

print_r ($asm1n);

请阅读-事实上,忘记添加&您也不需要内部循环。您可以完全删除内部的
foreach
,只需将其替换为:
$value=$fruits[$value]??'无效id'