我是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
}
答案 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"
但是我通常建议保留数组中的值而不是提取它们 只有在极少数情况下才能提取变量。
答案 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()
答案 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;
}