这是我的阵列格式:如何将数组转换为关联数组?
$data=["error.png","invoice_1.pdf","invoice2.png"];
但我想这种格式:
$data=[{"file":"error.png"},{"file":"invoice_1.pdf"},{"file":"invoice2.png"}]
谢谢。
这是我的阵列格式:如何将数组转换为关联数组?
$data=["error.png","invoice_1.pdf","invoice2.png"];
但我想这种格式:
$data=[{"file":"error.png"},{"file":"invoice_1.pdf"},{"file":"invoice2.png"}]
谢谢。
您应该创建一个新的数组。
并循环访问您现有的数组。
它的每个元素都是一个数组,其值为数组中的值。
以及作为字符串file
的键。
$arr = array();
foreach ($data as $elem) {
$arr[] = array('file' => $elem);
}
尝试调试:
echo '<pre>';
print_r($arr);
echo '</pre>';
最后,
echo json_encode($arr);
exit;
希望它为你工作。
谢谢。其工作 – 2014-11-21 10:29:21
然后,请接受我的答案作为解决方案。 – Pupil 2014-11-21 10:29:50
$data = ["error.png", "invoice_1.pdf", "invoice2.png"];
$newarray = array();
foreach ($data as $val){
array_push($newarray, array("file" => $val));
}
print_r($newarray); //Array ([0] => Array ([file] => error.png) [1] => Array ([file] => invoice_1.pdf) [2] => Array ([file] => invoice2.png))
echo json_encode($newarray); // [{"file":"error.png"},{"file":"invoice_1.pdf"},{"file":"invoice2.png"}]
exit;
刚刚尝试这个逻辑
使用
$data = array_map(
function ($item) {
return array('file' => $item);
},
$data
);
的值嵌入到数组或
$data = array_map(
function ($item) {
$x = new stdClass();
$x->file = $item;
return $x;
},
$data
);
将它们嵌入到对象。
或者,更好的,用你自己的类,而不是stdClass的(),并通过$项目作为参数传递给它的构造
$data = array_map(
function ($item) {
return new MyClass($item);
},
$data
);
$data = '["error.png","invoice_1.pdf","invoice2.png"]';
$data = json_decode($data);
$data = array_filter($data, function(&$item){return ($item = array('file' => $item));});
$data = json_encode($data);
为什么你想给相同的密钥来所有的变量? – 2014-11-21 10:24:50
这确实是非常简单的逻辑。你没有试图自己做这件事,甚至没有找到你想要的东西,因为你绝对不是第一个想做这件简单事情的人。 – 2014-11-21 11:14:52