Php 阵列匹配思想
我有一个问题,如果有人能给我一个答案,我会非常高兴和高兴。因此,我有一个数组,从代码中可以看出:Php 阵列匹配思想,php,arrays,session,foreach,Php,Arrays,Session,Foreach,我有一个问题,如果有人能给我一个答案,我会非常高兴和高兴。因此,我有一个数组,从代码中可以看出: print_r($this->session->userdata('cart')); 结果: Array([product\u name]=>Array([0]=>Optoma ML1000[1]=>Smart Board i885[2]=>Optoma W316)[产品价格]=>Array([0]=>12000[1]=>3000[2]=>652)[产品数量]=>Array([0]=>
print_r($this->session->userdata('cart'));
结果:
Array([product\u name]=>Array([0]=>Optoma ML1000[1]=>Smart Board i885[2]=>Optoma W316)[产品价格]=>Array([0]=>12000[1]=>3000[2]=>652)[产品数量]=>Array([0]=>1[1]=>1[2]=>1)[总计]=>15652
有人能给我一个主意,如何匹配所有这些,并使每一个展示他们。
例如:
谢谢大家! 您需要做的就是创建一个数组,其中必须使用数组的键存储每个数组的第一个元素值:
$Result = [];
foreach($this->session->userdata('cart') as $key => $value)
$Result[$key] = $value[0];
现在,您需要的所有数据都在$Result
$Result['product_name']; // contains the value "Optoma ML1000"
$Result['product_price']; // contains the value 12000
$Result['product_quantity']; // contains the value 1
输出为:
array (
0 => 'Optoma ML1000',
1 => 12000,
2 => 1,
)array (
0 => 'Smart Board i885',
1 => 3000,
2 => 1,
)array (
0 => 'Optoma W316',
1 => 652,
2 => 1,
)
您的阵列设置有点奇怪,但这应该可以工作
$items = print_r($this->session->userdata('cart'));
for ($i=0; $i < count($items['product_name']); $i++) {
echo $items['product_name'][$i];
echo $items['product_price'][$i];
echo $items['product_quantity'][$i];
}
通过执行以下操作,可以同时迭代三个内部数组中的每一个:
$cart = $this->session->userdata('cart');
foreach(array_map(null, $cart['product_name'],
$cart['product_price'],
$cart['product_quantity']) as $x) {
print_r(sprintf("product_name: %s, product_price: %s, product_quantity: %s\n", $x[0], $x[1], $x[2]));
}
你所说的“全部匹配”是什么意思?你已经用答案标记了你的问题:foreach。
$items = print_r($this->session->userdata('cart'));
for ($i=0; $i < count($items['product_name']); $i++) {
echo $items['product_name'][$i];
echo $items['product_price'][$i];
echo $items['product_quantity'][$i];
}
array(
array(
'product_name' => 'Optoma ML1000',
'product_price' => 12000,
'product_quantity' => 1
),
array(
'product_name' => 'Smart Board i885',
'product_price' => 3000,
'product_quantity' => 1
),
array(
'product_name' => 'Optoma W316',
'product_price' => 652,
'product_quantity' => 1
),
);
$cart = $this->session->userdata('cart');
foreach(array_map(null, $cart['product_name'],
$cart['product_price'],
$cart['product_quantity']) as $x) {
print_r(sprintf("product_name: %s, product_price: %s, product_quantity: %s\n", $x[0], $x[1], $x[2]));
}