>  Q&A  >  본문

将다차원 배열 값을 1차원 배열로 변환

해당 키가 다른 평면 연관 배열에서 발견되면 하나의 다차원 배열의 값을 변경하고 싶습니다.

다음 두 개의 배열이 있습니다.

으아악

저는 배열을 다음과 같이 만들고 싶습니다:

으아악

입력 필드에서 $semi 배열을 가져오고 이를 $full에 병합하여 내 데이터베이스에 저장하려고 합니다.

저는 다음과 같이 array_replace() 시도했습니다:

$full = [
    'Cars' => [
         'Volvo' => 0,
         'Mercedes' => 0,
         'BMW' => 0,
         'Audi' => 0
    ],
    'Motorcycle' => [
        'Ducati' => 0,
        'Honda' => 0,
        'Suzuki' => 0,
        'KTM' => 0
    ]
];

$semi = [
    'Volvo' => 1,
    'Audi' => 1
];

P粉969666670P粉969666670282일 전382

모든 응답(2)나는 대답할 것이다

  • P粉738248522

    P粉7382485222024-02-04 20:07:00

    "리프노드"에만 액세스하면 되며 array_walk_recursive()를 사용하여 전체 배열을 반복하고 수정하는 것은 매우 간단합니다.

    현대적인 "화살표 함수" 구문을 사용하면 쓰지 않고도 절반 배열에 액세스할 수 있습니다 use().

    이 방법은 반복적인 함수 호출을 수행하지 않습니다. 절반 배열의 참조(&$v) 修改 $v,使用“加法赋值”组合运算符 (+=) 以及空合并operator (??)를 기준으로 전체 배열에서 찾은 값을 조건부로 증가시킵니다.

    코드: (Demo)

    으아아아

    를 사용하지 않으면 array_walk_recursive() 자격을 갖춘 제조업체를 추가하기 위해 중첩 루프를 사용해야 합니다.

    코드: (Demo)

    으아아아

    회신하다
    0
  • P粉151720173

    P粉1517201732024-02-04 12:18:10

    배열 중 하나를 $semi 数组并检查它是否存在于 $full 반복하고 여기에 추가해야 합니다.

    으아악

    회신하다
    0
  • 취소회신하다