Hướng dẫn add key to json array php - thêm khóa vào mảng json php

Tôi đang sử dụng PHP & JSON, tôi cần thêm một phím cho mỗi mảng JSONeach json array

$array1 = array('id','name1','name2','name3','name4');

Tôi nhận được nhiều dữ liệu bằng SQL-Quary:

$array2 = [["1","1","12","34","text1"],["2","1","56","78","text2"]] // json array

Tôi cần thêm một phím cho mỗi mảng JSON, như:

[{"id":"1","name1":"1","name2":"1","name3":"1","name4":"test1"},{"id":"2","name1":"2","name2":"2","name3":"2","name4":"test2"}]

Đã hỏi ngày 31 tháng 5 năm 2017 lúc 12:09May 31, 2017 at 12:09

Hướng dẫn add key to json array php - thêm khóa vào mảng json php

1

Thử cái này

Hàm mảng_combine () tạo ra một mảng bằng cách sử dụng các phần tử từ một mảng "khóa" và một mảng "giá trị".array_combine() function creates an array by using the elements from one "keys" array and one "values" array.

";
foreach ($array2 as $value) {
    $result[] = array_combine($array1,$value);
}
//print_r($result);
echo json_encode($result);
 ?>

Lưu ý: Ở đây các thành phần mảng của $ mảng1 và các phần tử mảng có giá trị $ phải giống nhau nếu không nó sẽ trả về sai. Here array elements of $array1 and array elements of $value must be same otherwise it returns FALSE.

Đã trả lời ngày 31 tháng 5 năm 2017 lúc 12:17May 31, 2017 at 12:17

Hướng dẫn add key to json array php - thêm khóa vào mảng json php

NidhinidhiNidhi

1.50916 huy hiệu bạc27 Huy hiệu đồng16 silver badges27 bronze badges

Bạn có thể sử dụng array_combine() để tạo một mảng từ hai cái khác bằng cách sử dụng một cho các phím và cái kia cho các giá trị (lưu ý cả hai phải có cùng độ dài!)Note both must have the same length!)

$array1 = array('id','name1','name2','name3','name4');
$array2 = [["1","1","12","34","text1"],["2","1","56","78","text2"]];

foreach ($array2 as &$set) {
    $set = array_combine($array1, $set);
}
unset($set);

echo json_encode($array2);

Ở đây chúng tôi chuyển từng mảng bên trong vào foreach bằng cách tham khảo (____10 trong

$array2 = [["1","1","12","34","text1"],["2","1","56","78","text2"]] // json array
1) để chúng tôi có thể sửa đổi nó trực tiếp mà không phải tạo mảng kết quả thứ ba, chúng tôi cũng không đặt nó sau vòng lặp.

Đã trả lời ngày 31 tháng 5 năm 2017 lúc 12:26May 31, 2017 at 12:26

cfreearcfreearcfreear

1.8362 huy hiệu vàng19 Huy hiệu bạc25 Huy hiệu đồng2 gold badges19 silver badges25 bronze badges

Bạn nên sử dụng định nghĩa của mảng (), đó là:

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
    )

Bạn có dữ liệu của mình trong mỗi phần tử của Array2, bạn có thể lặp lại nó và tạo một mảng mới cho mỗi phần tử bằng hàm tạo mà tôi đã đăng. Vì vậy, một ví dụ sẽ là:

array('id'-->array2[i][j],'name1'=>array[i][j+1],...)

Hướng dẫn add key to json array php - thêm khóa vào mảng json php

Bhargav Rao

47.4K27 Huy hiệu vàng122 Huy hiệu bạc137 Huy hiệu đồng27 gold badges122 silver badges137 bronze badges

Đã trả lời ngày 31 tháng 5 năm 2017 lúc 12:14May 31, 2017 at 12:14

Hướng dẫn add key to json array php - thêm khóa vào mảng json php

0

Bạn có thể sử dụng phép lặp chức năng để tránh các biến toàn cầu tạm thời.

Mã: (Demo)

$keys = ['id', 'name1', 'name2', 'name3', 'name4'];

$rows = [
    ["1", "1", "12", "34", "text1"],
    ["2", "1", "56", "78", "text2"]
];

echo json_encode(
         array_map(
             function($row) use ($keys) {
                 return array_combine($keys, $row);
             },
             $rows
         )
     );

Hoặc với Php7.4 và cao hơn Thưởng thức chức năng mũi tên cú pháp:

echo json_encode(
         array_map(
             fn($row) => array_combine($keys, $row),
             $rows
         )
     );

Tuy nhiên, cuối cùng, nếu dữ liệu này đến từ bất kỳ loại nguồn SQL nào, thì bạn nên quản lý tên cột trong mệnh đề Chọn và sau đó PHP chỉ cần tạo Subarrays kết hợp khi bạn tìm nạp và đẩy dữ liệu vào mảng kết quả của bạn.

Đã trả lời ngày 1 tháng 6 năm 2021 lúc 12:14Jun 1, 2021 at 12:14

Hướng dẫn add key to json array php - thêm khóa vào mảng json php

Mickmackusamickmackusamickmackusa

39.2k11 Huy hiệu vàng76 Huy hiệu bạc115 Huy hiệu đồng11 gold badges76 silver badges115 bronze badges