如何用另一个数组中的值替换数组中的值?

时间:2016-01-27 10:37:12

标签: php arrays

我正在拿一个数组:

$sql = SELECT id, name, state FROM table ORDER BY name
$result = mysqli_query($conn, $sql);
$rows = array();
$dict = ["A","B","C"];
while ($row = mysqli_fetch_array($result)) {
//replace state value here before next line
  $rows[] =  $row;
}

字段中的值可以是0,1,2。我想将$row的key =状态中的值替换为$dict的值,因此0 => A,1 => B,2 => C. state字段中的值等于$ dict数组的位置。
恩。如果$row=["id"=>"1","name"=>"john", "state"=>"1"]
$row=["id"=>"1","name"=>"john", "state"=>"B"]

1 个答案:

答案 0 :(得分:0)

您可以这样使用:

$dict = array("A","B","C");
$i = 0;
while ($row = mysqli_fetch_array($result)) {
   $rows[$i]['id'] =  $row['id'];
   $rows[$i]['name'] =  $row['name'];
   $rows[$i]['state'] =  $dict[$value['state']];
   $i++;
}

如果您的$dict索引固定为三个索引,那么它将完全正常工作。

<强>解释

$dict[$value['state']]这将根据索引值获取值。

就像$value['state'] == 1一样,它会从$dict数组获得“B”

为了安全起见,你也可以这样使用:

$rows[$i]['state'] =  (isset($dict[$value['state']]) ? $dict[$value['state']] : ''); // if not set than empty anything else that you want.