【问题标题】:Multidimensional Array Flatten多维数组展平
【发布时间】:2012-08-27 12:04:54
【问题描述】:

我正在努力实现这一点..也许有人知道我怎么能做到这一点,我只做了部分,我也在研究 php 和 drupal 函数

这是全图

http://imageshack.us/photo/my-images/405/array.png/

filed_new(Arr...) 必须变为 ['value'] = string (11111)

【问题讨论】:

  • 请尝试以文本形式而不是图像添加实际输出。也就是说,我只能看到filed_new(Arr...) 不在您的输出中。所以,你只是想删除它吗?
  • filed_new(Arr...) 必须变为 ['value'] = string (11111)

标签: php arrays multidimensional-array


【解决方案1】:

您的输入数组:

...
0{
    data{
        nid => 1
        vid => 1
        type => article
        field_new{
            und{
                0{
                    value => 11111
                }
            }
        }
    }
}
1{
    data{
        nid => 2
        vid => 2
        type => article
        field_new{
            und{
                0{
                    value => 33333
                }
            }
        }
    }
}

您想要的数组:

...
0{
    data{
        nid => 1
        vid => 1
        type => article
        value => 11111
    }
}
1{
    data{
        nid => 2
        vid => 2
        type => article
        value => 33333
    }
}

Unset (http://php.net/manual/en/function.unset.php) 是我们的朋友。

unset() 销毁指定的变量。

使用此代码:

<?php

$loop_count = count($input_arr);
for($i=0;$i<loop_count;$i++){
    //copy the value to the desired place
    $input_arr[$i]["data"]["value"] = $input_arr[$i]["data"]["field_new"]["und"][0]["value"];

    //delete the unwanted portion
    unset($input_arr[$i]["data"]["field_new"]);
} // for loops ENDS

?>

假设:

  • 您的基/父数组是数字索引的。
  • 在每个数组中,field_new 处于同一级别。

请添加您用于生成/获取此数组的代码,我们可以为您提供更具体的答案。

【讨论】:

  • 感谢 $arr[$i]["data"]["value"] = $arr[$i]["data"]["field_new"]['und']['0']["value"]; 代替 $input_arr[$i]["data"]["value"] = $input_arr[$i]["data"]["field_new"]["value"]; 工作,但再次感谢我整个上午都在寻找这个 :)
  • @punked 对不起,我的错!更新了答案:)
猜你喜欢
  • 2020-06-06
  • 1970-01-01
  • 2011-09-05
  • 2010-11-22
  • 1970-01-01
  • 2013-09-12
相关资源
最近更新 更多