質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1880閲覧

array_mapの動作について

sonor_3rd

総合スコア114

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

1クリップ

投稿2016/10/31 02:49

###質問
添字配列のキーを、配列内のユニークな1要素に置き変える処理をつくりました。
(下記ソースをご覧頂くと早いかと思います。)

問題なく動作しているように見えるのですが、
array_mapの戻り値は、順番が保証されているものでしょうか。

確証が持てなかったため、質問した次第です。
宜しくお願い致します。

###ソースコード

php

1$arr = array( 2 0 => array( 3 'id' => 10, 4 'name' => 'foo', 5 'value' => 100, 6 ), 7 1 => array( 8 'id' => 100, 9 'name' => 'bar', 10 'value' => 500, 11 ) 12 ); 13 14$arr = array_combine(array_map('get_arr_id', $arr), $arr); 15 16function get_arr_id($arr){ 17 return $arr['id']; 18}
kei344👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

array_map自体に特記となる注釈はないようですが

配列を確認すれば「実際には順番付けられたマップ」との記載がありますので
基本的に配列に関する処理は(キーの値にかかわらず)順序が保証されている
と考えて良いと思います

投稿2016/10/31 03:12

yambejp

総合スコア114747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sonor_3rd

2016/10/31 03:48

ありがとうございます。 phpに限った話ではありませんが、動作や仕様を知らないことの恐ろしさは、経験しないと解りませんね・・・。
guest

0

本題とは無関係ですが・・・
PHP5.3以降だと無名関数が使えるらしいので、下記の通り修正しました。

php

1$arr = array_combine( 2 array_map( function($a){ return $a['id']}, $arr) 3 , $arr 4 );

投稿2016/11/10 05:49

sonor_3rd

総合スコア114

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問