在3个变量中列出数组

时间:2017-10-23 19:52:03

标签: php

我是php中的noob,我需要帮助才能在3个变量中列出这个数组。

Array ( [ram] => 2,3, [almacenamiento] => 16,32, [marca] => Huawey,Samsung, ) 

我想要这个:

$ram= "2,3,";

$almacenamiento="16,32,";

$marca="Huawey,Samsung,";

我只知道列表数组简单foreach()

print_r($_POST);

$result=$_POST;

foreach($result as $indice=>$valor){

    print"$indice";//INDICE
    print"$valor";//VALOR
}

5 个答案:

答案 0 :(得分:0)

如果是键控数组,则使用

$ram = $array['ram'];

如果是$ _POST变量(表单提交,也可以是$ _GET)

$ram = $_POST['ram'];

答案 1 :(得分:0)

使用extract从数组中提取变量。

$arr = Array ( "ram" => "2,3" , "almacenamiento" => "16,32" , "marca" => "Huawey,Samsung");
Extract ($arr);

Echo $ram; // "2,3"

https://3v4l.org/0qv6I

但是我通常建议保留数组中的值而不是提取它们 只有在极少数情况下才能提取变量。

答案 2 :(得分:0)

您可以使用extract()方法,它会将数组键转换为值:

$arr = array ( "ram" => "2,3" , "almacenamiento" => "16,32" , "marca" => "Huawey,Samsung");

extract($arr);

echo $ram; //2,3
echo $almacenamiento; //16,32
echo $marca; //Huawey,Samsung

您可以在此处找到有关extract()

的更多详情

http://php.net/manual/en/function.extract.php

答案 3 :(得分:0)

以下是另一种使用数组destructuring的方法(请参阅here),它适用于PHP 7.1.10 +:

<?php

[$ram,$almacenamiento, $marca ]= array_values(["ram" => "2,3", 
                                               "almacenamiento" => "16,32", 
                                               "marca" => "Huawey,Samsung"
                                               ]);
var_dump($ram,$almacenamiento, $marca);

请参阅live code

使用数组解构的一个缺点是,如果不小心,可以覆盖变量的值。如果使用extract(),则可能会出现相同的情况,除非您提供了参数EXTR_SKIP,如下例所示:

<?php

$a = ["red"=>"rouge","blue"=>"sea","rally"=>"game","trolley"=>"SF"];


$red = "heifer";

extract($a, EXTR_SKIP);

echo "$red, $blue, $rally, $trolley\n";

请参阅live code

然而,在Rasmus Lerdorf等人(第1版)的 Programming PHP 中,建议通过使用参数EXTR_PREFIX_SAME避免潜在的变量冲突,该参数将用户指定的前缀附加到提取的变量。 / p>

最后,您可以使用list构造和array_values()自动生成基于数组值的多个变量,如下所示:

<?php

list($ram,$almacenamiento, $marca )= array_values(["ram" => "2,3", 
                                               "almacenamiento" => "16,32", 
                                               "marca" => "Huawey,Samsung"
                                               ]);
var_dump($ram,$almacenamiento,$marca);

请参阅live code

使用list(),还可以覆盖变量。因此,在使用list()之前,应该小心并测试是否已存在任何变量;参见示例here

答案 4 :(得分:-1)

您可以使用$$创建与数组键同名的变量,如下所示:

foreach($values as $key => $value) {
    $$key = $value;
}