Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
array_merge と array_push の違いについて
Search
ショウノシオリ
August 21, 2018
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
array_merge と array_push の違いについて
PHP Meetup Osaka 2018.08
ショウノシオリ
August 21, 2018
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
280
開発チームのリーダーとしてどうあるべきか?
sshono1210
3
1.3k
Nuxt.js のディレクトリ
sshono1210
0
3k
Nuxt.js で SSR 対応する
sshono1210
1
2.3k
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
270
Vue.js の methods と computed
sshono1210
0
150
すぐに使える ES2015 の基本構文3つ
sshono1210
0
110
肌で感じたディレクションとマネジメント
sshono1210
0
110
Vue.jsで遊んでみよう
sshono1210
0
120
Other Decks in Programming
See All in Programming
Building an Out-of-Order CPU
latte72
1
760
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
120
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
110
スマート反転とウェブアクセシビリティ
camiha
0
200
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
150
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
150
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.6k
業務時間外もAIに働いてもらう話
colorful12
3
10k
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
370
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
480
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
30 Presentation Tips
portentint
PRO
1
390
Bash Introduction
62gerente
615
220k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
670
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
700
sira's awesome portfolio website redesign presentation
elsirapls
0
410
The untapped power of vector embeddings
frankvandijk
2
1.9k
The Language of Interfaces
destraynor
162
27k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
520
Documentation Writing (for coders)
carmenintech
77
5.5k
Transcript
array_merge と array_push の違いについて ショウノシオリ
PHPで配列を扱うときによくやってしまうこと 配列の 足し算 をする際に、想定していたものよりも深い階層の配列をつくってしまう。
毎回ググって調べてしまうので 改めてまとめてみました
アジェンダ • PHPの配列と連想配列の違い • 足し算の方法 ◦ array_merge、+ ▪ array_merge と
+ の違い ◦ array_push ◦ array_merge とarray_push の違い • まとめ
PHPの配列と連想配列の違い • 連想配列:キーと値を組み合わせた配列 • 配列:値のみの配列。 ∴ 連想配列 => キーあり、配列 =>
キーはあるがインデックスなので書かない
足し算の方法 代表的なもの2つ • array_merge、+ • array_push
array_merge、+(演算子) 配列どうしを結合する関数。結合したら新しい配列を作ることに注意。 連想配列、配列どちらでも同じように使える。
• array_merge:勝手にいい感じにしてくれる イメージ <= keyが同じだと上書きされる&数値の場合は採番しなおす • + :融通が利かない イメージ <=
keyが同じでも上書きされない&数値の場合も採番しなおさない array_merge と + の違い
key が同じ場合
key が数値の場合
array_push 既存の配列に要素を追加する関数。わざわざ新しい配列をつくる必要はない。
Q:これの原因は?
A:連想配列に array_push を使ってしまったから。 array_merge の場合は、配列・連想配列どちらであってもキーが維持されたまま結 合される。
一方で、array_push を連想配列に使ってしまうと、キーにはインデックスが自動的に割り 当てられてしまうため、階層が深くなってしまう。 そのため、この場合は array_merge を使うとよい。
まとめ • 連想配列とは「キーと値をもつ配列」であり、配列も連想配列の一つである。 • 配列を結合させるときは array_merge もしくは + を使うことができるが、それぞれの キーに関する挙動は異なるので注意。
◦ array_merge:キーの上書き&採番しなおし ◦ + :キーを上書きも採番もしない • array_push で要素を追加することができるが、自動的にキーはインデックスが割り振 られてしまうため、連想配列を扱うときには注意が必要