【问题标题】:Extracting value from multidimensional array based on conditional statement基于条件语句从多维数组中提取值
【发布时间】:2014-02-05 20:54:25
【问题描述】:

我有一个提交变量的表单,我们称之为 $_POST['sku']。

此表单还向外部 webapp (Shopify) 提交一些变量,后者返回一个数组,如下所示:

['product']['variants'],最多有 27 个变体,即

['product']['variants'][1]
['product']['variants'][2]
['product']['variants'][3] ...
['product']['variants'][27]

每个变体都有几个键,例如:

['product']['variants'][0]['id']
['product']['variants'][0]['sku'];

也就是说,variant 0 有唯一的 id 和 sku,variant 1、variant 2 等也是如此。

我想使用 php 从 'id' 键中提取值,其中 'sku' 值等于从我的表单提交的 $_POST['sku'] 值。例如,

如果 $_POST['sku'] = 222

和 ['product']['variants'][3]['sku'] = 222

然后我想提取 ['product']['variants'][3]['id']。

我很迷茫——有什么想法吗?

【问题讨论】:

  • 遍历所有变体。检查sku是否等于posted,如果是:获取id并break,如果不是,继续

标签: php arrays forms multidimensional-array shopify


【解决方案1】:

所以基本上:

foreach($variable['product']['variants'] as $i=>$variant) {
   if($variant['sku'] == $_POST['sku']) {
      // found it in $variable['product']['variants'][$i] so variant $i
      break;
   }
}

【讨论】:

  • 好的,我明白你的意思了,但是 $i 是在哪里定义的?
  • 内部 foreach($variable['product']['variants'] as $i=>$variant) { 其中每个变体被提取,键被分配给 $i 和值(包含 sku 和 id 的整个数组)分配给 $variant。请参阅the PHP foreach documentation 了解更多信息
猜你喜欢
  • 2021-04-18
  • 2012-09-29
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 2018-10-07
相关资源
最近更新 更多