PHPで配列から必要な値を取り出せる関数「array_values」とは?

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

プログラミングでは「配列」と呼ばれるデータ構造をよく使います。配列は「データの保存形式」の1つ。PHPだけに限らず多くのプログラミング言語では値を配列として保存することがあります。

カンタンに言えば配列は「複数の値を1つの箱に格納できる便利な書き方」です。プログラミングでは値をまとめて1箇所に保存したくなるシチュエーションが多くあるので配列を使うことになります。

もちろん、プログラミングは自由なので配列を使わずにデータを1つずつ個別で保存しても構いません。ただしソフトウェアによってはすでに配列で保存することがルール付けられていることがあるので配列のデータ構造で値を取得したり、保存手順も覚える必要がありますよね。以下で配列を詳しくご紹介させていただきます。

PHPで配列から必要な値を取り出せる関数「array_values」とは?

ワードプレスでも特定の値をプログラム側で取得すると配列で返ってくる場合があります。データベースからどんな値を取得したいのかで話も変わってくるので以下では一般的な例を解説させていただきます。

配列データは「echo」できない

プログラミングを学び始めると色々「echo(出力)」したくなりますよね。ただ、配列はechoできません。

以下はわかりやすくワードプレスのファンクションで処理を書きました。サイト側(管理画面以外)の全ページで出力される「wp_head」を使っているのでウェブサイト側で表示チェックに使えます。

function array_test_function() {
	$fruits = array('いちご', 'マスカット', '桃');
	echo $fruits;
}
add_action( 'wp_head', 'array_test_function' );

配列として果物の名前を3つ(いちご・マスカット・桃)代入しています。

▼echoした結果

しかし、配列データは「echo」で出力できず「Array」という文字が表示されます。配列だよという意味です。

配列データの中身を確認する方法

上記の「echo」を「var_dump」に置き換えると値を確認できます。

function array_test_function() {
	$fruits = array('いちご', 'マスカット', '桃');
	var_dump($fruits);
}
add_action( 'wp_head', 'array_test_function' );

中身が確認できました。番号では「0=いちご・1=マスカット・2=桃」ですね。

▼var_dumpした結果

プログラムでは0から始まるので3個目の桃が2番になっています。

3番の「桃」だけを取り出す方法

もし桃だけを出力したい場合は以下。ピンポイントの出力では「echo」が使えます。

function array_test_function() {
	$fruits = array('いちご', 'マスカット', '桃');
	echo $fruits[2];
}
add_action( 'wp_head', 'array_test_function' );

桃だけが出力されましたね。

▼番号指定でechoした結果

ワードプレスのデータベースから引っ張ってきた値が配列のデータ構造で個別で文字を出力したいなら上記の手順でOKです。もちろん、どんな値を取得するかでどの番号に入ってくるかわかりません。

var_dumpよりも「print_r」?

PHPでは「var_dump」で情報を取得して逐一中身を確認するのが一般的です。さきほど「echo」では配列全体を出力できませんでしたが別の関数で「print_r」という便利な出力方法があります。

function array_test_function() {
	$fruits = array('いちご', 'マスカット', '桃');
	print_r($fruits);
}
add_action( 'wp_head', 'array_test_function' );

下記の通り最低限の情報だけが出力される書き方ですね。配列であることに変わりはありませんが、中身を確認するためだけなら「var_dump」よりも「print_r」が見やすくすることができます。

▼print_rした結果

改行を入れてさらに見やすく工夫するなら以下の書き方がベストです。

function array_test_function() {
	$fruits = array('いちご', 'マスカット', '桃');
	echo "<pre>"; print_r( $fruits ); echo "</pre>";
}
add_action( 'wp_head', 'array_test_function' );

配列(Array)で0(いちご)、1(マスカット)、2(桃)とわかりやすいですね。

▼文字を整えて表示した結果

個人的には“型”もわかる「var_dump」をよく使います。型はstringやint等があります。

💻受講料無料でプログラミング習得

⇒ 完全無料のプログラミングスクール - 手に職をつけて安定的に働きたい人へ -

連想配列として値を保存する方法(キー指定でセットされた状態)

さきほどは各果物の名前に番号(0〜2)が振られていましたよね。実際のプロジェクトでは「データベース内に配列として保存された値」には(番号ではなく)名前がつけられていることが多いです。

▼var_dumpした結果

ちなみに書き方は以下となります。

function array_test_function() {
	$fruits = ["strawberry" => "いちご", "muscat" => "マスカット", "peach" => "桃"];
	var_dump($fruits);
}
add_action( 'wp_head', 'array_test_function' );

データベースから値を呼び出すSQL文によっては上記の通り「名前付きの配列」が返ってきます。ただルールに基づいて文字を出力したい場合は名前を数字で振り直したいシチュエーションがあります。

関数「array_values」で名前を番号に置き換える

キーをすべて番号に戻す方法が以下です。関数の「array_values」を使っています。

function array_test_function() {
	$fruits = ["strawberry" => "いちご", "muscat" => "マスカット", "peach" => "桃"];
	$result = array_values($fruits);
	var_dump($result);
}
add_action( 'wp_head', 'array_test_function' );

元に戻りましたね。

▼var_dumpした結果

実際にデータベースから値を取得して名前付きの配列だった場合に「array_values」で元に戻します。番号に戻しておけばさっきと同じ手順で特定の要素を「echo」することもできるわけです。

データベースから値を取得すると配列として値が返ってくるケースが多いので必要なデータを取り出すためには色々な関数を使って置き換えて取得できる状態にしていきましょう。取得⇒変換⇒出力は基本です。

実際にデータベースから値を取得する方法は別で記事にしていますので併せてご参照ください。書き方としては下記のように特定の条件でSQL文を作ってデータ取得する流れです。その後UPDATE等はご自由に。

function array_test_function() {
	global $wpdb;
	$result = $wpdb->query($wpdb->prepare("SELECT テーブル名 SET フィールド名 = '$変数' WHERE フィールド名 = 番号"));
	var_dump($result);
}
add_action( 'wp_head', 'array_test_function' );

もし取得した値が「配列」で特定の値が必要なら配列系の関数で変換してください。データベースの基本的な書き方は以下をご参照くださいませ。実際に使う場合はプレースホルダも忘れず設定しましょう。

WordPressでデータベースのテーブルデータを更新する方法

【今すぐ無料プラグインを手に入れる】
無料ダウンロードはこちら

ワードプレス専門家に丸投げする

WPホームページ研究所はワードプレスを中心としたブログ作成・ホームページ制作・オウンドメディア構築・プラグイン設定・調整など幅広いカスタマイズに対応しております。 記事の掲載情報はもちろんお好みの機能をいただければ専属スタッフが心を込めて対応させていただきます。まずはお気軽にお問い合わせくださいませ。

お問い合わせの種類をお選びください(もっとも近い項目)

法人の場合は法人名とご担当者のお名前をご入力ください

返信時のご連絡に利用するメールアドレスをご入力ください

運営中のウェブサイトURLがあればご入力ください

お困りの内容があれば詳しい内容をお聞かせください