채택완료

두개 array 키값을 비교해서 value 값 넣기

안녕하세요

 

Copy
$a = Array ( [0] => Array ( [guest_phone] => 1234)

[1] => Array ( [guest_phone] => 5678));

 

$b = Array ( [0] => Array ( [number] => 1234 [name] => '홍길동 ));

 

 

이런식으로 $a, $b 가 있을때

 

guest_phone = number 같은값만 name이 들어가게끔 $a에 하려고하는데요

 

이런식으로 했다면

원하는 결과값 : 

 

Copy
$a = Array ( [0] => Array ( [guest_phone] => 12345,[name] => '홍길동'))

[1] => Array ( [guest_phone] => 5678),[name] => ''));

 

어떻게 하면 좋을까요?

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

배열 갯수가 $a 에 0,1 2개 , $b에 0 한개 뿐인가요?

질문이 좀 더 상세해야 효율적인 코딩이 가능한데....
각각의 배열이 갯수가 몇개인지에 따라 효율적인 방법을 찾아야 합니다

 

예를들어 $a에 10개 $b가 20개면 for문으로 돌리면 200번 loop를 돌아야겠죠
이런 경우 30번만 loop돌면 되는 코드입니다

number를 키로 해서 배열을 하나 만들면 됩니다


for($i=0; $i<count($b); $i++){$p =$b[$i]['number']; $c[$p]= $b[$i]['name']; }

for($i=0; $i<count($a); $i++){
$p = $a[$i]['guest_phone'];
 if($c[$p]) $a[$i]['name'] = $c[$p];
 else $a[$i]['name'] = '';
}

답변에 대한 댓글 1개

대박 균이님 너무 천재신듯..

배열은 좀더 많고 다양한데 알려주신걸 응용해서 완료했습니다

정말 감사합니다!!

if($a['guest_phone'] == $b['number'])

 $a['name'] = $b['name'];

 

답변을 작성하려면 로그인이 필요합니다.