【问题标题】:this line is overwriting the array此行正在覆盖数组
【发布时间】:2011-04-08 22:51:07
【问题描述】:

好的,所以我正在创建一个多维数组,并且这一行只允许一个元素进入其中。我如何检查是否

$related[$row_r['Category_name']][$row_r['name']]

大于 0,如果是这样,请不要覆盖该值并附加到它上面

while($row_r = mysql_fetch_assoc($result)){
  $related[$row_r['Category_name']][$row_r['name']] = $row_r; //this line

【问题讨论】:

  • 请向我们提供有关您尝试做什么的更多信息。您根据某物是否大于 0 来指定您想要不同的行为,但它似乎(至少有时)包含一个数组。

标签: php loops multidimensional-array


【解决方案1】:

也许您正在寻找这个?

while($row_r = mysql_fetch_assoc($result)){
    $related[$row_r['Category_name']][$row_r['name']][] = $row_r;
}

【讨论】:

    【解决方案2】:
    $value=$related[$row_r['Category_name']][$row_r['name']];
    if(is_int($value) && $value>0) {//if current value is a >0 integer
      $related[$row_r['Category_name']][$row_r['name']] = array($value, $new_value);//we combine the new value too, together with the previous one, into an array
    } elseif(is_array($value)) {//if  it was already an array, we append the new element
      $related[$row_r['Category_name']][$row_r['name']][] = $new_value;
    } else {//other wise (a 0 integer), we would assign the value.
      $related[$row_r['Category_name']][$row_r['name']] = $new_value;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 2010-12-06
      • 1970-01-01
      • 2019-01-02
      • 2019-10-04
      相关资源
      最近更新 更多