php for循环在数组中分配变量

时间:2017-08-28 13:58:50

标签: php arrays

我有一个类似于

的数组(myArray)
Array(
  [0] => Computer
  [1] => House
  [2] => Phone
  )

我正在尝试将每个值动态设置为一个数字,例如

$newValues = [

  "computer" => 0,
  "House" => 1,
  "Phone" => 2,
];

我有以下循环

$y = 0;
for ($x = 0; $x < count($myArray); x++){
   $values = [
     $myArray[$x] = ($y+1)
   ];
   y++;


}

这不正确地产生

Array(
  [0] => 3
 )

4 个答案:

答案 0 :(得分:2)

您可以使用array_flip($ arr)。 link

答案 1 :(得分:1)

如果我理解,您希望使用键翻转值,请尝试使用array_flip()

如果首先使用数组,请尝试在PHP Array functions中进行一些研究。 ;)

答案 2 :(得分:1)

使用array_flip() - 使用数组中的关联值交换所有键

<?php
$a1=array("0"=>"Computer","1"=>"House","2"=>"Phone");
$result=array_flip($a1);
print_r($result);
?>

然后输出:

Array
(
    [Computer] => 0
    [House] => 1
    [Phone] => 2
)

了解更多信息

http://php.net/manual/en/function.array-flip.php

答案 3 :(得分:0)

就像其他人所说的那样,array_flip会起作用,但是,您编写的代码中的实际问题是:

  1. 您正在为数组键使用错误的赋值运算符:
  2. $myArray[$x] = ($y+1)应为$myArray[$x] => ($y+1)

    然而,这种类型的任务确实不是必要的,因为下一个问题会显示出来:

    1. 您使用新数组重写每次迭代的$ value。
    2. 要附加到$值,您可以使用:

      $values[$myArray[$x]] = $y+1;
      
      1. 如果您真的想要0作为第一个值,请不要在作业中使用y + 1.