【PHP】초실용적! 참조 사용 (≒ 참조 전달)없이 배열의 내용을 가자.
소개
조금 전에 썼다.
「【PHP】전 내가 실무로 울었던 「가치 전달」과 「참조 통과」를 완! 모두! 이치! 해"
에서 연상 배열의 내용을 만질 때 참조 전달 참조의 사용을 사용했습니다.
(이전 기사에서 코멘트를 받았지만 정확하게는 참조 전달이 아니라 참조 사용이라고 말하는 것 같습니다)
※그 차이에 대해서는 상기의 기사의 코멘트란을 체크해 주세요.
하지만 앞에서 설명한 방법으로는 후속 처리가 잘 되지 않았습니다.
그런 때에 선배에게 이 기사에서 소개하는 방법을 가르쳐 주었으므로 정리합니다.
게다가 실용적
이 기사의 추천 독자
3 분이면 전부 읽을 수 있으므로 꼭 읽어보세요
참조 사용 (≒ 참조 전달)없이 배열의 내용을 반죽하는 방법
위의 기사와 동일한 코드를 사용합니다.
<?php
// 配列を2つ定義
$members = [
'Aさんの好きな果物' => [
'りんご' => 'apple',
'ぶどう' => 'grape',
'バナナ' => 'banana',
],
'Bさんの好きな果物' => [
'マンゴー' => 'mango',
'パイナップル' => 'pineapple',
'ドラゴンフルーツ' => 'dragon fruit',
],
];
$fruits = [
'ざくろ' => 'pomegranate',
'オレンジ' => 'orange',
'もも' => 'peach',
];
// $membersに$fruitsの要素を追加
foreach ($members as &$member) {
$member['ざくろ'] = $fruits['ざくろ'];
$member['もも'] = $fruits['もも'];
}
// 配列を出力
var_dump($members);
foreach 안에
&$member
이것이 참조 전달 참조 전달을 나타내는 쓰기 방법.
그래서 이것을 사용하지 않고 원하는 내용을 출력하는 방법은 여기! 돈!
<?php
// 配列を2つ定義
$members = [
'Aさんの好きな果物' => [
'りんご' => 'apple',
'ぶどう' => 'grape',
'バナナ' => 'banana',
],
'Bさんの好きな果物' => [
'マンゴー' => 'mango',
'パイナップル' => 'pineapple',
'ドラゴンフルーツ' => 'dragon fruit',
],
];
$fruits = [
'ざくろ' => 'pomegranate',
'オレンジ' => 'orange',
'もも' => 'peach',
];
// $membersに$fruitsの要素を追加
foreach ($members as $index => $member) {
$members[$index]['ざくろ'] = $fruits['ざくろ'];
$members[$index]['もも'] = $fruits['もも'];
}
// 出力
var_dump($members);
출력 결과
array(2) {
["Aさんの好きな果物"]=>
array(5) {
["りんご"]=>
string(5) "apple"
["ぶどう"]=>
string(5) "grape"
["バナナ"]=>
string(6) "banana"
["ざくろ"]=>
string(11) "pomegranate"
["もも"]=>
string(5) "peach"
}
["Bさんの好きな果物"]=>
array(5) {
["マンゴー"]=>
string(5) "mango"
["パイナップル"]=>
string(9) "pineapple"
["ドラゴンフルーツ"]=>
string(12) "dragon fruit"
["ざくろ"]=>
string(11) "pomegranate"
["もも"]=>
string(5) "peach"
}
}
제대로 각 배열에 요소가 2개 추가되어 있습니다! !
변경한 것은
foreach ($members as &$member) {
$member['ざくろ'] = $fruits['ざくろ'];
$member['もも'] = $fruits['もも'];
}
여기
foreach ($members as $index => $member) {
$members[$index]['ざくろ'] = $fruits['ざくろ'];
$members[$index]['もも'] = $fruits['もも'];
}
이렇게 바꿨습니다.
코드 설명(쉬운)
foreach ($members as $index => $member) {
$members[$index]['ざくろ'] = $fruits['ざくろ'];
$members[$index]['もも'] = $fruits['もも'];
}
첫째, foreach ($members as $index => $member)
에서 첫 번째 연관 배열은
<?php
// 配列を2つ定義
$members = [
'Aさんの好きな果物' => [
'りんご' => 'apple',
'ぶどう' => 'grape',
'バナナ' => 'banana',
],
'Bさんの好きな果物' => [
'マンゴー' => 'mango',
'パイナップル' => 'pineapple',
'ドラゴンフルーツ' => 'dragon fruit',
],
];
$fruits = [
'ざくろ' => 'pomegranate',
'オレンジ' => 'orange',
'もも' => 'peach',
];
// $membersに$fruitsの要素を追加
foreach ($members as &$member) {
$member['ざくろ'] = $fruits['ざくろ'];
$member['もも'] = $fruits['もも'];
}
// 配列を出力
var_dump($members);
&$member
<?php
// 配列を2つ定義
$members = [
'Aさんの好きな果物' => [
'りんご' => 'apple',
'ぶどう' => 'grape',
'バナナ' => 'banana',
],
'Bさんの好きな果物' => [
'マンゴー' => 'mango',
'パイナップル' => 'pineapple',
'ドラゴンフルーツ' => 'dragon fruit',
],
];
$fruits = [
'ざくろ' => 'pomegranate',
'オレンジ' => 'orange',
'もも' => 'peach',
];
// $membersに$fruitsの要素を追加
foreach ($members as $index => $member) {
$members[$index]['ざくろ'] = $fruits['ざくろ'];
$members[$index]['もも'] = $fruits['もも'];
}
// 出力
var_dump($members);
array(2) {
["Aさんの好きな果物"]=>
array(5) {
["りんご"]=>
string(5) "apple"
["ぶどう"]=>
string(5) "grape"
["バナナ"]=>
string(6) "banana"
["ざくろ"]=>
string(11) "pomegranate"
["もも"]=>
string(5) "peach"
}
["Bさんの好きな果物"]=>
array(5) {
["マンゴー"]=>
string(5) "mango"
["パイナップル"]=>
string(9) "pineapple"
["ドラゴンフルーツ"]=>
string(12) "dragon fruit"
["ざくろ"]=>
string(11) "pomegranate"
["もも"]=>
string(5) "peach"
}
}
foreach ($members as &$member) {
$member['ざくろ'] = $fruits['ざくろ'];
$member['もも'] = $fruits['もも'];
}
foreach ($members as $index => $member) {
$members[$index]['ざくろ'] = $fruits['ざくろ'];
$members[$index]['もも'] = $fruits['もも'];
}
foreach ($members as $index => $member) {
$members[$index]['ざくろ'] = $fruits['ざくろ'];
$members[$index]['もも'] = $fruits['もも'];
}
첫째,
foreach ($members as $index => $member)
에서 첫 번째 연관 배열은$index
:'A씨가 좋아하는 과일' $members
: [
'りんご' => 'apple',
'ぶどう' => 'grape',
'バナナ' => 'banana',
]
입니다.
그래서
$members[$index]['ざくろ'] = $fruits['ざくろ'];
로함으로써,$members['Aさんの好きな果物']['ざくろ'] = 'pomegranate';
됩니다.
즉, 원래 연상 배열
members
에 요소를 추가할 수 있는 것입니다.$members[$index]['もも'] = $fruits['もも'];
도 마찬가지이므로 할애.이렇게 하면 참조를 사용하지 않고 foreach를 사용해도 배열의 내용을 이지할 수 있습니다.
(흥미롭게도
$member
는 사용하지 않네요)끝
이 방법, 상당히 사용할 수 있습니다! 실무에서도 상당히 사용하고 있습니다! 추천입니다!
연상 배열의 취급 방법이 능숙해지면 실무에서의 개발 스피드는 상당히 오르지 않으면 매일 통감하고 있습니다.
(물론 다른 스킬도 많이 있지만 w)
만약 내용을 마음에 들어 주시면 LGTM을 부탁드립니다.
끝까지 읽어 주셔서 감사합니다
Reference
이 문제에 관하여(【PHP】초실용적! 참조 사용 (≒ 참조 전달)없이 배열의 내용을 가자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shimotaroo/items/c4648d5c0a3cfad59792
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【PHP】초실용적! 참조 사용 (≒ 참조 전달)없이 배열의 내용을 가자.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shimotaroo/items/c4648d5c0a3cfad59792텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)