首頁
後端開發
php教程
请问php如何快速的根据字符串进行数组访问.
请问php如何快速的根据字符串进行数组访问.
Jun 06, 2016 pm 08:14 PM
php
如:
1 2 3 4 5 6 7 | <code> $array =>[
'a' =>[
'b' =>[
'name' => '张三'
]
]
];</code>
|
登入後複製
登入後複製
请问如何实现下方的访问方式.
1 2 3 4 5 6 7 8 | <code> $arrayNode = [ 'a' , 'b' , 'name' ];
$array { $arrayNode }= '李四' ;
print ( $array { $arrayNode });
</code>
|
登入後複製
登入後複製
谢谢.
回复内容:
如:
1 2 3 4 5 6 7 | <code> $array =>[
'a' =>[
'b' =>[
'name' => '张三'
]
]
];</code>
|
登入後複製
登入後複製
请问如何实现下方的访问方式.
1 2 3 4 5 6 7 8 | <code> $arrayNode = [ 'a' , 'b' , 'name' ];
$array { $arrayNode }= '李四' ;
print ( $array { $arrayNode });
</code>
|
登入後複製
登入後複製
谢谢.
1 2 3 4 5 6 7 8 9 | <code> $arrayNode = [ 'a' , 'b' , 'name' ];
$array =[
'a' =>[
'b' =>[
'name' => '张三'
]
]
];
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 = & $array ;
$found = true;
foreach ( $arrayNode as $key ) {
if (isset( $pointer [ $key ])) {
$pointer = & $pointer [ $key ];
} else {
$found = false;
break ;
}
}
if ( $found ) {
$pointer = '李四' ;
}
</code>
|
登入後複製
长是长了点,不过适应性应该还可以。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn