我有一个多维数组,我想json_encode
但在此之前,我需要base64_encode
与产品图像对应的数组。
e.g
var_dump($products_results) // outputs
array(18) {
[0]=>
array(70) {
["product_id"]=> string(4) "9087"
["make"]=> string(6) "shinox"
["color"]=> string(3) "red"
["country"]=> string(3) "usa"
["image"]=> string(6201) "����ExifII*��Ducky��Adobed����....."
["image_front"]=> string(5201) "��������....."
["image_back"]=> string(5201) "��������....."
.....
[1]=>
array(70) {
["product_id"]=> string(4) "8999"
["make"]=> string(6) "shinox"
["color"]=> string(3) "black"
["image"]=> string(6201) "����ExifII*��Ducky��Adobed����....."
["image_front"]=> string(5201) "��������....."
["image_back"]=> string(5201) "��������....."
... ECT
这里每个数组代表我的sql数据库中的产品,其中图像存储为二进制数据而不是URL路径,以便允许一些离线功能......这是我第一次尝试存储图像时,我创建了{{ 1}}我在这个论坛的很多帖子上阅读的图像列,现在我需要VARBINARY
这些图像,然后再将客户端作为对象发送。
我的问题是如何将每个产品数组循环到base64_encode
三个数组,其关键字为base64_encode
,image
和image_front
与图像相关。
image_back
$JSON_array = array();
//包含上面的18个数组,其中包含图像编码
$JSON_array["Products"] = $products_results;
//其他一些不需要更改的内容
$JSON_array["specifications"] = $specs_results
答案 0 :(得分:0)
技巧是跟踪数组索引值,以便您可以更新原始数据。
foreach ($JSON_array['Products'] as $productIndex => $product)
{
$JSON_array['Products'][$productIndex]['image'] = base64_encode($product['image']);
$JSON_array['Products'][$productIndex]['image_front'] = base64_encode($product['image_front']);
$JSON_array['Products'][$productIndex]['image_back'] = base64_encode($product['image_back']);
}
这将使用base64_encode
值更新循环外的原始数组。然后你应该能够轻松地json_encode()
那个数组。
$output = json_encode($JSON_array);