PHP:选择元素并在多维数组中更改另一个元素

时间:2014-12-13 20:08:11

标签: php codeigniter multidimensional-array

我有一些多维数组,我想用foreach输入,选择一个特定的元素。运行具有该值的函数,并使用函数中返回的值更改数组内的另一个元素。一些示例代码:

多维数组:

['arrayName']=>array(2)
{
    ['array2Name']=>array(1)
    {
        ['someElement']=>String(0) ""
        ['someElement']=>String(0) ""
        ['someElement']=>String(0) ""
        ['someElement']=>String(0) ""
        ['array3Name']=>array(0)
        {
            ['ElementToGet']=>String(4) "1234"
            ['ElementToChange']=>String(8) "abcdefgh"

我不知道如何选择“ElementToGet”。但是一旦我得到它,它应该像这样处理:

$element = (the way to select it);
$returningElement = $this->my_model->myFunction($element);

返回元素应该替换数组中的“ElementToChange”。我不知道如何处理这个问题,任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

自己找到了解决方案。很多嵌套的foreach循环。

如果其他人有同样的问题,这是我的方式:

foreach($newsletter_structure as $category_tree)
    {
        if(is_array($category_tree))
        {
            foreach($category_tree as $a)
            {
                if(is_array($a))
                {
                    foreach($a as $b)
                    {
                        if(is_array($b))
                        {
                            foreach($b as $c)
                            {
                                if(is_array($c))
                                {
                                    foreach($c as $d)
                                    {
                                        if(is_array($d))
                                        {
                                            foreach($d as $e)
                                            {
                                                $newsitem_id = $e['Id'];
                                                $newUrl = $this->setupLoggingUrl($newsitem_id, $newsletter_id);
                                                $e['URL'] = $newUrl;

使用if(is_array())以避免任何可能的错误。