【问题标题】:Replace array key value替换数组键值
【发布时间】:2018-05-22 16:40:46
【问题描述】:

我想将数组值(1、2、3 和 4)替换为相应的文本

1 = OK;
2 = nOK;
3 = Warning;
4 = Other

这里有一些代码:

$status = $row['status']; 

(我将 $status 文本存储在 mysql 行 1、2、3、4、1、2、4、4、1 等)

$myarray = array($status);
foreach($myarray as $key => $val)
{
    print_r($val);
}

这个输出是:

Array ( [0] => 2 [1] => 3 [2] => 1 [3] => 4 [4] => 1 [5] => 1 [6] => 3 [7] => 4 [8] => 1 [9] => 2 )

如何做到这一点?谢谢!

【问题讨论】:

  • 详细说明您的问题:您的输入是什么,是字符串还是数组?更准确
  • 文本从何而来,原始数组是什么样子的?你没有给我们足够的信息。
  • 抱歉,我编辑了我的问题
  • 使用$statuses[1 => 'OK', 2 => 'nOK', ...'] 创建一个数组,然后执行echo $statuses[$row['status']];

标签: php arrays replace key


【解决方案1】:

您可以为此使用 str_replace。
Str_replace 接受数组,这意味着您不必循环。

$repl =  array(1 =>"OK", 2 => "nOK", 3 => "Warning", 4 => "Other");

$myarray = array(1,2,3,4);

$new = str_replace($myarray,$repl, $myarray);

var_dump($new);

https://3v4l.org/tgL1q

【讨论】:

    【解决方案2】:

    如果您的$myarray 是多维数组,请使用以下代码

    $array = [
        1 => 'OK'
        2 => 'nOK'
        3 => 'warning'
        4 => 'Other'
    ];
    
    foreach($myarray as $key => $subarray)
    {
        foreach($subarray as $ele)
        print_r($array[$ele]);
    }
    

    【讨论】:

    • 我什至看不到这段代码是如何工作的。更不用说语法错误了。你可以制作一个运行版本吗?此外,它仅在它是一级多维时才有效。
    • @Andreas 正如你在问题中看到的那样,print 语句的输出是一个数组,它告诉$myarray 是多维数组
    • 是的。好的,但是替换 OP 询问的内容在哪里?
    【解决方案3】:
    $array = array(1,2,3,4);
    $string_array = array(
                        1 => "OK",
                        2 => "nOK",
                        3 => "Warning",
                        4 => "Other"
                    );
    $output = array_flip($string_array);
    

    【讨论】:

      【解决方案4】:
      $newArray= array_flip($oldArray);
      

      这将为您的数组键提供“值”的值。 如果我理解正确,您所指的“文本”是数组值。

      【讨论】:

        猜你喜欢
        • 2017-04-28
        • 2020-05-23
        • 1970-01-01
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        • 2023-02-20
        • 2014-03-09
        • 2012-07-26
        相关资源
        最近更新 更多