[解決済み] PHP 多次元配列の値による検索
2022-03-22 11:52:42
質問
を検索したい配列があります。
uid
で、その配列のキーを取得します。
使用例
次のような2次元配列があるとします。
$userdb = array(
array(
'uid' => '100',
'name' => 'Sandra Shush',
'pic_square' => 'urlof100'
),
array(
'uid' => '5465',
'name' => 'Stefanie Mcmohn',
'pic_square' => 'urlof100'
),
array(
'uid' => '40489',
'name' => 'Michael',
'pic_square' => 'urlof40489'
)
);
関数呼び出し
search_by_uid(100)
(最初のユーザーの uid) を返す必要があります。
0
.
関数呼び出し
search_by_uid(40489)
を返さなければなりません。
2
.
ループを作ったりもしましたが、もっと高速に実行できるコードが欲しいです。
どのように解決するのですか?
function searchForId($id, $array) {
foreach ($array as $key => $val) {
if ($val['uid'] === $id) {
return $key;
}
}
return null;
}
これでうまくいきます。このように呼び出すとよいでしょう。
$id = searchForId('100', $userdb);
を使用する場合は、そのことを知ることが重要です。
===
演算子で比較する型は完全に同じでなければなりません。
string
を使用するか、あるいは
==
の代わりに
===
.
に基づいています。
アンゴル
の答えになります。後のバージョンの PHP では (
>= 5.5.0
) ワンライナーを使用することができます。
$key = array_search('100', array_column($userdb, 'uid'));
以下はドキュメントです。 http://php.net/manual/en/function.array-column.php .
関連
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] PHPの配列を別の配列にコピーする関数はありますか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] 配列を値でコピーする
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「セッションキャッシュリミッターを送信できません - ヘッダーはすでに送信されています」【重複】。
-
[解決済み】変な電話番号を生成するフェイカー?
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】Laravel 5.2 Storage::makeDirectory($dir) でディレクトリが作成されない。
-
[解決済み】警告。数値でない値に遭遇しました
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。