해당 키가 다른 평면 연관 배열에서 발견되면 하나의 다차원 배열의 값을 변경하고 싶습니다.
다음 두 개의 배열이 있습니다.
으아악저는 배열을 다음과 같이 만들고 싶습니다:
으아악입력 필드에서 $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 ];
"리프노드"에만 액세스하면 되며
array_walk_recursive()
를 사용하여 전체 배열을 반복하고 수정하는 것은 매우 간단합니다.현대적인 "화살표 함수" 구문을 사용하면 쓰지 않고도 절반 배열에 액세스할 수 있습니다
use()
.이 방법은 반복적인 함수 호출을 수행하지 않습니다. 절반 배열의 참조(
&$v
) 修改$v
,使用“加法赋值”组合运算符 (+=
) 以及空合并operator (??
)를 기준으로 전체 배열에서 찾은 값을 조건부로 증가시킵니다.코드: (Demo)
으아아아를 사용하지 않으면
array_walk_recursive()
자격을 갖춘 제조업체를 추가하기 위해 중첩 루프를 사용해야 합니다.코드: (Demo)
으아아아배열 중 하나를
으아악$semi
数组并检查它是否存在于$full
반복하고 여기에 추가해야 합니다.