亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

轉換數組 php

轉換數組 php

PHP
白豬掌柜的 2023-08-26 19:02:27
我想知道是否可以將數組從狀態 1 轉換為狀態 2,如下例所示。狀態 1(示例):array(5) {         [0]=> array(10) {                 ["id"]=> "6"                 ["name"]=> "peter"                 ["date"]=> "2020-09-25"                 ["sleep"]=> "20"                 ["pain"]=> "30"...        [1]=> array(10) {                 ["id"]=> "6"                 ["name"]=> "peter"                 ["date"]=> "2020-09-26"                 ["sleep"]=> "80"                 ["pain"]=> "90"...        [2]=> array(10) {                 ["id"]=> "10"                 ["name"]=> "john"                 ["date"]=> "2022-09-25"                 ["sleep"]=> "25"                 ["pain"]=> "15"...        [3]=> array(10) {                 ["id"]=> "10"                 ["name"]=> "john"                 ["date"]=> "2022-09-25"                 ["sleep"]=> "55"                 ["pain"]=> "65"...        [4]=> array(10) {                 ["id"]=> "6"                 ["name"]=> "peter"                 ["date"]=> "2020-09-27"                 ["sleep"]=> "40"                 ["pain"]=> "60"...ID = 6和Name = peter出現 3 次 和ID = 10出現Name = john2 次。狀態2:array(2){        [0]=>array() {                ['id']=> "6"                 ['name']=>"peter"                 ["dates" => [2020-09-25, 2020-09-26, 2020-09-27]]                 ["sleeps" => [20, 80, 40]]                 ["pains" => [30, 90, 60]]        [1]=>array() {                ['id']=> "10"                 ['name']=>"john"                 ["dates" => [2022-09-25, 2022-09-25]]                 ["sleeps" => [25, 55]]                 ["pains" => [15, 65]]}這個想法是讓一個數組僅具有一次相同的 ID 和相同的名稱,然后是具有相同字段的值的數組,例如(id => 1, name => kevin, [dates => [date1, date2, date3]], [sleep => s1, s2, s3]]來自同一用戶。ID = 6和Name = peter出現 1 次 和ID = 10出現Name = john1 次,但每個都有自己的數據。我希望我是可以理解的。
查看完整描述

1 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

是的你可以。由于您id似乎是唯一的,因此迭代它并使用您的id索引作為主索引創建新數組,您可以使用array_key_exists()來執行此操作。畢竟它應該看起來像這樣:

array(2){

? ? ? ? [6]=>array() {

? ? ? ? ? ? ? ? ['id']=> "6"?

? ? ? ? ? ? ? ? ['name']=>"peter"?

? ? ? ? ? ? ? ? ["dates" => [2020-09-25, 2020-09-26, 2020-09-27]]?

? ? ? ? ? ? ? ? ["sleeps" => [20, 80, 40]]?

? ? ? ? ? ? ? ? ["pains" => [30, 90, 60]]

? ? ? ? [10]=>array() {

? ? ? ? ? ? ? ? ['id']=> "10"?

? ? ? ? ? ? ? ? ['name']=>"john"?

? ? ? ? ? ? ? ? ["dates" => [2022-09-25, 2022-09-25]]?

? ? ? ? ? ? ? ? ["sleeps" => [25, 55]]?

? ? ? ? ? ? ? ? ["pains" => [15, 65]]

}

這是 5 分鐘的工藝,我很確定你會自己做。


<?php

$data = [

? ? [

? ? ? ? 'id'? ? => '6',

? ? ? ? 'name'? => 'peter',

? ? ? ? 'date'? => '2020-09-25',

? ? ? ? 'sleep' => '20',

? ? ? ? 'pain'? => '30'

? ? ],

? ? [

? ? ? ? 'id'? ? => '6',

? ? ? ? 'name'? => 'peter',

? ? ? ? 'date'? => '2020-09-26',

? ? ? ? 'sleep' => '80',

? ? ? ? 'pain'? => '90',

? ? ],

? ? [

? ? ? ? 'id'? ? => '10',

? ? ? ? 'name'? => 'john',

? ? ? ? 'date'? => '2022-09-25',

? ? ? ? 'sleep' => '25',

? ? ? ? 'pain'? => '15',

? ? ],

? ? [

? ? ? ? 'id'? ? => '10',

? ? ? ? 'name'? => 'john',

? ? ? ? 'date'? => '2022-09-25',

? ? ? ? 'sleep' => '55',

? ? ? ? 'pain'? => '65',

? ? ],

? ? [

? ? ? ? 'id'? ? => '6',

? ? ? ? 'name'? => 'peter',

? ? ? ? 'date'? => '2020-09-27',

? ? ? ? 'sleep' => '40',

? ? ? ? 'pain'? => '60'

? ? ]

];


$newArr = [];


foreach ($data as $oldItem) {

? ? $id = $oldItem['id'];

? ? if (!array_key_exists($id, $newArr)) {

? ? ? ? $newArr[$id] = [

? ? ? ? ? ? 'id'? ? => $id,

? ? ? ? ? ? 'name'? => $oldItem['name'],

? ? ? ? ? ? 'dates' => [$oldItem['date']],

? ? ? ? ? ? 'sleeps' => [$oldItem['sleep']],

? ? ? ? ? ? 'pains'? => [$oldItem['pain']],

? ? ? ? ];

? ? } else {

? ? ? ? $newArr[$id]['dates'][] = $oldItem['date'];

? ? ? ? $newArr[$id]['sleeps'][] = $oldItem['sleep'];

? ? ? ? $newArr[$id]['pains'][] = $oldItem['pain'];

? ? };

}


echo "<pre>JSON:\n";

echo json_encode($newArr, JSON_PRETTY_PRINT);

echo "\n\nprint_r():\n";

print_r($newArr);


查看完整回答
反對 回復 2023-08-26
  • 1 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號