這是我的陣列格式:如何將數組轉換爲關聯數組?
$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