我想将方括号字符串存储在一个变量中,以便我可以使用该变量来获取数组的值。我怎样才能做到这一点?
例子:
$vehicle = array("car"=>"volvo","bike"=>"polygon");
$bracket1="['car']";
$bracket2="['bike']";
echo $vehicle.$bracket1;//my expected result = 'volvo';
echo $vehicle.$bracket2;//my expected result = 'polygon';
案例假设我有这个数据
$data = array(
"vehicles"=>array(
array(
"name"=>"volvo",
"manufacturer"=>"abc",
"color"=>array("blue"=>"wonderful","red"=>"fantastic")),
array(
"name"=>"toyota",
"manufacturer"=>"def",
"color"=>array("blue"=>"awesome","red"=>"good")),
array(
"name"=>"mecedes",
"manufacturer"=>"ghi",
"color"=>array("blue"=>"nice","red"=>"great","green"=>"good","brown"=>"elegant")),
));
$fields = array(
"$data['vehicles']['name']",
"$data['vehicles']['manufacturer']",
"$data['vehicles']['color']['blue']",
"$data['vehicles']['color']['red']"
);
//a function to print those data according to user parameter($fields, it may uncertain pattern)
function get_data($data,$fields){
for($c=0;$c<count($data);$c++){
foreach($fields as $field){ //field to show
echo $field;
}
}
}
编辑:
$data = array(
"vehicles"=>array(
array(
"name"=>"volvo",
"manufacturer"=>"abc",
"color"=>array("blue"=>"wonderful","red"=>"fantastic")),
array(
"name"=>"toyota",
"manufacturer"=>"def",
"color"=>array("blue"=>"awesome","red"=>"good")),
array(
"name"=>"mecedes",
"manufacturer"=>"ghi",
"color"=>array("blue"=>"nice","red"=>"great","green"=>"good","brown"=>"elegant")),
));
$c=0;
$fields = array( // note added zeros here... these are your "vehicle" array key
"{$data['vehicles'][$c]['name']}",
"{$data['vehicles'][$c]['manufacturer']}",
"{$data['vehicles'][$c]['color']['blue']}",
"{$data['vehicles'][$c]['color']['red']}"
);
for($c=0;$c<count($data['vehicles']);$c++){
foreach($fields as $field) {
echo $field . PHP_EOL;
}
}
//the output print : volvo abc wonderful fantastic volvo abc wonderful fantastic volvo abc wonderful fantastic
//the output expectetd : volvo abc wonderful fantastic toyota dev awesome good mercedes ghi nice great