Heim > Backend-Entwicklung > PHP-Tutorial > 请问php如何快速的根据字符串进行数组访问.

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

WBOY
Freigeben: 2016-06-06 20:14:35
Original
1229 Leute haben es durchsucht

如:

<code>$array=>[
'a'=>[
    'b'=>[
        'name'=>'张三'
    ]
]
];</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code>$arrayNode = ['a','b','name'];
//请问如何根据 $arrayNode 变量来实现
$array{$arrayNode}='李四';//这样php会报错.
// $array['a']['b']['name']='李四';  类似这样的效果呢? 
print($array{$arrayNode});
//李四

</code>
Nach dem Login kopieren
Nach dem Login kopieren

谢谢.

回复内容:

如:

<code>$array=>[
'a'=>[
    'b'=>[
        'name'=>'张三'
    ]
]
];</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code>$arrayNode = ['a','b','name'];
//请问如何根据 $arrayNode 变量来实现
$array{$arrayNode}='李四';//这样php会报错.
// $array['a']['b']['name']='李四';  类似这样的效果呢? 
print($array{$arrayNode});
//李四

</code>
Nach dem Login kopieren
Nach dem Login kopieren

谢谢.

<code>$arrayNode = ['a','b','name'];
$array=[
    'a'=>[
        'b'=>[
            'name'=>'张三'
        ]
    ]
];
echo $array[array_shift($arrayNode)][array_shift($arrayNode)][array_shift($arrayNode)];</code>
Nach dem Login kopieren

你想要的可能是

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

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

是这样吗?

修改答案

<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>
Nach dem Login kopieren

<code>$pointer = &$array;
$found = true;
foreach ($arrayNode as $key) {
    if (isset($pointer[$key])) {
        $pointer = &$pointer[$key];
    } else {
        $found = false;
        break;
    }
}

if ($found) {
    $pointer = '李四';
}
</code>
Nach dem Login kopieren

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

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage