变量数组

时间:2015-01-12 21:28:46

标签: php arrays

我正在尝试在数组中添加变量,但未能这样做,请帮助我。

以下是可以正常使用的原始代码

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);

并输出此

Array
(
    [a] => green
    [0] => red
)

但我想在数组中添加变量,因此数组从变量中获取值,但它不起作用

我在尝试什么

$a = '"green", "red", "blue"';
$b = '"green", "yellow", "red"';
$array1 = array("a" => $a);
$array2 = array("b" => $b );  
$result = array_intersect($array1, $array2);
print_r($result);

我希望它像这样输出

Array
(
    [a] => green
    [0] => red
)

我得到的是什么

Array ( ) 

任何帮助将不胜感激。感谢

2 个答案:

答案 0 :(得分:1)

您尝试过的代码是将字符串'"green", "red", "blue"'分配给数组元素"a",当您看起来想要分割字符串时,"green red blue"变为array("green","red","blue") }

$a = "green red blue";
$array1 = split(" ",$a);

请参阅http://php.net/manual/en/function.split.php

答案 1 :(得分:1)

您正在添加字符串'"绿色","红色","蓝色"'不是一个数组。在您的代码段中

  

$ a ='"绿色","红色","蓝色"&#39 ;;   $ b ='"绿色","黄色","红色"&#39 ;;   $ array1 = array(" a" => $ a);   $ array2 = array(" b" => $ w);
  $ result = array_intersect($ array1,$ array2);   的print_r($结果);

PHP会将$a$b理解为字符串。如果您打算将数组传递给$a$b,则需要将其更改为

$a = array("green", "red", "blue");
$b = array("green", "yellow", "red");

然后做你的交集。如果使用var_dump($a),您将看到$a正在存储字符串变量。