Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有逻辑参数的PHP多维数组(有些脑筋扭曲)_Php_Arrays_Multidimensional Array_Logic - Fatal编程技术网

带有逻辑参数的PHP多维数组(有些脑筋扭曲)

带有逻辑参数的PHP多维数组(有些脑筋扭曲),php,arrays,multidimensional-array,logic,Php,Arrays,Multidimensional Array,Logic,问题: 我有一个来自magento的变量,它存储在模型类中,可以作为 $productArray[] = array(); foreach ($order->getAllItems() as $item) { $productArray[] = array( "product" => $item->getName(), "qty" => $item->getQtyOrdered(), "amount" =

问题: 我有一个来自magento的变量,它存储在模型类中,可以作为

$productArray[] = array();
foreach ($order->getAllItems() as $item) {
    $productArray[] = array(
        "product"  => $item->getName(),
        "qty"   => $item->getQtyOrdered(),
        "amount" => $item->getPrice(),
    );
}
这是打印$productArray[]时的值:
样本输出1:

array(1) {
  [0]=>
  array(3) {
    ["product_name"]=>
    string(12) "Test Product"
    ["product_qty"]=>
    string(6) "2.0000"
    ["product_price"]=>
    string(7) "12.0000"
  }
}
array(2) {
  [0]=>
  array(3) {
    ["product_name"]=>
    string(12) "Test Product"
    ["product_qty"]=>
    string(6) "2.0000"
    ["product_price"]=>
    string(7) "12.0000"
  }
  [1]=>
  array(3) {
    ["product_name"]=>
    string(6) "Test 2"
    ["product_qty"]=>
    string(6) "5.0000"
    ["product_price"]=>
    string(7) "22.0000"
  }
}

样本输出2:

array(1) {
  [0]=>
  array(3) {
    ["product_name"]=>
    string(12) "Test Product"
    ["product_qty"]=>
    string(6) "2.0000"
    ["product_price"]=>
    string(7) "12.0000"
  }
}
array(2) {
  [0]=>
  array(3) {
    ["product_name"]=>
    string(12) "Test Product"
    ["product_qty"]=>
    string(6) "2.0000"
    ["product_price"]=>
    string(7) "12.0000"
  }
  [1]=>
  array(3) {
    ["product_name"]=>
    string(6) "Test 2"
    ["product_qty"]=>
    string(6) "5.0000"
    ["product_price"]=>
    string(7) "22.0000"
  }
}
你怎么能这样做呢?(应该这样打印)
如果输出1:最终输出1

<input type="hidden" name="product" value="Test Product" />
<input type="hidden" name="amount" value="24.00" />


如果输出2:最终输出2

<input type="hidden" name="product1" value="Test Product" />
<input type="hidden" name="amount1" value="24.00" />
<input type="hidden" name="product2" value="Test 2" />
<input type="hidden" name="amount2" value="110.00" />

将获取金额产品价格*产品数量

玩得开心点:) 这只是一个虚拟问题,但对其他类似的问题也有帮助:

<?php
foreach($productArray as $i => $product){
  $index = count($productArray) == 1 ? "" : $i; //So we don't have index when only 1 element
  $amount = $product['product_price'] * $product["product_qty"];
  $name = $product['product_name'];
?>
  <input type="hidden" name="product<?php echo $index; ?>" value="<?php echo $name;?>" />
  <input type="hidden" name="amount<?php echo $index;?>" value="<?php echo $amount;?>" />
<?php
}
?>

不确定magento,但在普通php中:

<?php
  $productArray = array(
    array(
      "product_name" => "Test Product",
      "product_qty" => "2.0000",
      "product_price" => "12.0000"
),
    array(
  "product_name"=> "Test 2",
      "product_qty"=>"5.0000",
      "product_price"=>"22.0000"
    )
  );

  foreach($productArray as $v) {
    echo '<input type="hidden" name="product" value="'.$v["product_name"].'" />';
    echo '<input type="hidden" name="amount" value="'.($v["product_qty"]*$v["product_price"]).'" />';
  }
?>

在php中创建表单字段数组时,使用“product[$id]”作为名称,然后php将在$\u POST中返回一个整洁的数组。您甚至可以使用name=“product[$id][price]”获得一个2D数组

请注意,如果你的网店信任隐藏的表单数据在结帐时(就像你看起来做的那样)在购物车中拖拉,你会有一个巨大的安全漏洞,所以请发布网址,我想免费订购

哈哈哈。。正如我所说,“这只是一个虚拟的问题”。我之所以提出这些问题,是因为我对他的会话输出感到好奇。并探索多维数组。:)