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]));
}