目錄
回复内容:
首頁 後端開發 php教程 请问php如何快速的根据字符串进行数组访问.

请问php如何快速的根据字符串进行数组访问.

Jun 06, 2016 pm 08:14 PM
php

如:

1

2

3

4

5

6

7

<code>$array=&gt;[

'a'=&gt;[

    'b'=&gt;[

        'name'=&gt;'张三'

    ]

]

];</code>

登入後複製
登入後複製

请问如何实现下方的访问方式.

1

2

3

4

5

6

7

8

<code>$arrayNode = ['a','b','name'];

//请问如何根据 $arrayNode 变量来实现

$array{$arrayNode}='李四';//这样php会报错.

// $array['a']['b']['name']='李四';  类似这样的效果呢?

print($array{$arrayNode});

//李四

 

</code>

登入後複製
登入後複製

谢谢.

回复内容:

如:

1

2

3

4

5

6

7

<code>$array=&gt;[

'a'=&gt;[

    'b'=&gt;[

        'name'=&gt;'张三'

    ]

]

];</code>

登入後複製
登入後複製

请问如何实现下方的访问方式.

1

2

3

4

5

6

7

8

<code>$arrayNode = ['a','b','name'];

//请问如何根据 $arrayNode 变量来实现

$array{$arrayNode}='李四';//这样php会报错.

// $array['a']['b']['name']='李四';  类似这样的效果呢?

print($array{$arrayNode});

//李四

 

</code>

登入後複製
登入後複製

谢谢.

1

2

3

4

5

6

7

8

9

<code>$arrayNode = ['a','b','name'];

$array=[

    'a'=&gt;[

        'b'=&gt;[

            'name'=&gt;'张三'

        ]

    ]

];

echo $array[array_shift($arrayNode)][array_shift($arrayNode)][array_shift($arrayNode)];</code>

登入後複製

你想要的可能是

1

2

3

<code>$arrayNode = ['a','b','name'];

 

$array[array_shift($arrayNode)][array_shift($arrayNode)][array_shift($arrayNode)] = "李四";</code>

登入後複製

是这样吗?

修改答案

1

2

3

4

5

6

7

8

9

10

11

12

13

<code><?php $arrayNode = ['a','b','name',"1234"];

$arr = [];

$name = "李四";

while ($arrayNode) {

    if(count($arr)==0){

        $arr[array_pop($arrayNode)] = $name;

    }else{

        $arr[array_pop($arrayNode)] = $arr;

        array_shift($arr);

    }

     

}

var_dump($arr);</code></code>

登入後複製

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<code>$pointer = &amp;$array;

$found = true;

foreach ($arrayNode as $key) {

    if (isset($pointer[$key])) {

        $pointer = &amp;$pointer[$key];

    } else {

        $found = false;

        break;

    }

}

 

if ($found) {

    $pointer = '李四';

}

</code>

登入後複製

长是长了点,不过适应性应该还可以。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles