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

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

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

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

537閲覧

配列の変換方法について

kans00229

総合スコア28

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2018/05/22 03:01

PHPバージョン5.6
フレームワーク等は使用しておりません。

ものすごく初歩的な質問で申し訳ありませんが
下記のような配列を希望する配列に変換する方法を
お教え頂けないでしょうか。

//元の配列 [0]=> array(2) { ["name_mbr"]=> string(15) "ゴンザレス" ["name_jp"]=> string(14) "スペイン" ["attend_info"]=> string(6) "出席" } [1]=> array(2) { ["name_mbr"]=> string(15) "武" ["name_jp"]=> string(14) "日本" ["attend_info"]=> string(6) "欠席" } [2]=> array(2) { ["name_mbr"]=> string(15) "パク" ["name_jp"]=> string(14) "韓国" ["attend_info"]=> string(6) "-" }

希望する配列の形

$arrayData = [ ['ゴンザレス', 'スペイン', '出席'], ['武', '日本', '欠席'], ['パク', '韓国', '-'], ];

foreachaやfor文で変換すればよいのかもしれませんが
効率的なやり方があればと思い、ご質問させて頂いております。

本当に初歩的な質問で大変申し訳ありませんが。
宜しくお願い致します。

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

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

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

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

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

guest

回答3

0

普通に

PHP

1$a=[ 2 [ 3 "name_mbr"=>"ゴンザレス", 4 "name_jp"=>"スペイン", 5 "attend_info"=>"出席", 6 ], 7 [ 8 "name_mbr"=>"武", 9 "name_jp"=>"日本", 10 "attend_info"=>"欠席", 11 ], 12 [ 13 "name_mbr"=>"パク", 14 "name_jp"=>"韓国", 15 "attend_info"=>"-", 16 ], 17 ]; 18$b=array_map(function($x){ 19 return array_values($x); 20},$a); 21print_r($b);

投稿2018/05/22 03:19

yambejp

総合スコア114572

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

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

退会済みユーザー

退会済みユーザー

2018/05/22 03:29

array_values()、なるほどね。
guest

0

ベストアンサー

php

1<?php 2 3$src = [ 4 [ 5 "name_mbr" => "ゴンザレス", 6 "name_jp" => "スペイン", 7 "attend_info" => "出席", 8 ], 9 [ 10 "name_mbr" => "武", 11 "name_jp" => "日本", 12 "attend_info" => "欠席", 13 ], 14 [ 15 "name_mbr" => "パク", 16 "name_jp" => "韓国", 17 "attend_info" => "-", 18 ] 19]; 20$dest = array_map(function($arr) { 21 return [$arr['name_mbr'], $arr['name_jp'], $arr['attend_info']]; 22}, $src); 23var_dump($dest);

実行結果
イメージ説明

どやっ!

投稿2018/05/22 03:18

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kans00229

2018/05/22 03:33

いつもながら皆様にお力を貸して頂き助かっております。今回は、一番投稿が早かったm6u様をベストアンサーとさせて頂きました。有難うございました。
退会済みユーザー

退会済みユーザー

2018/05/22 03:35

yambejpさんのいうarray_values()も組み合わせるともっとコンパクトになりますので。
kans00229

2018/05/22 03:42

了解致しました。お二人とも有難うございます。
guest

0

foreachやfor文で変換すればよいです。
効率は悪くありません。

投稿2018/05/22 03:05

編集2018/05/22 03:05
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/05/22 03:12

こんなときこそ array_map() とか array_walk() の出番か!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問