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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1965閲覧

phpのarray_map関数の代わりのコードについて

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/05/18 06:00

編集2016/05/18 06:17

配列の縦横入れ替え的な操作を下記のコードを作成し行ったのですが問題が発生しました。

<?php $testdata = array( array("1000","350","50","1400"), array("600","500","30","1200") ); $test = array_map(null,$testdata[0],$testdata[1],$testdata[2]); $row = array(); foreach($test as $key=>$val){ $row[$key] = $val; } ?>

array(4) {
[0]=>
array(3) {
[0]=>
string(4) "1000"
[1]=>
string(3) "600"
}
[1]=>
array(3) {
[0]=>
string(3) "350"
[1]=>
string(3) "500"
}
[2]=>
array(3) {
[0]=>
string(2) "50"
[1]=>
string(2) "30"

}
[3]=>
array(3) {
[0]=>
string(4) "1400"
[1]=>
string(4) "1200"
}
}

実装しようとテストしていたら気づいたのですが、$testdataに入ってくる2次元配列の数が未定のため、array_map関数の第二引数以降を上手く指定できない問題が発生してしまいました。

現在は下記のようになっていますが、

$testdata = array(
array("1000","350","50","1400"),
array("600","500","30","1200")
);
下記のようになったらを考えていませんでした。

$testdata = array(
array("1000","350","50","1400"),
array("600","500","30","1200"),
array("430","1500","80","100")
);

すみませんが良い修正案がありましたらよろしくお願いします。

しようしているphpは5.3です。

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

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

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

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

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

guest

回答2

0

ベストアンサー

バージョンの関係でnnssnさん回答の配列参照が使えない場合はcall_user_func_arrayでいけると思います。

php

1array_unshift($testdata, null); 2$test = call_user_func_array('array_map', $testdata);

投稿2016/05/18 06:16

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/05/18 06:23

返答ありがとうございます(^o^) すいませんphpはバージョンが5.3でした(*_*)
guest

0

もしPHP5.6以降であれば引数を...配列変数という形で渡すと自動的に
要素を展開してくれます。

php

1 2//要素数不問でzip処理 3$test = array_map(null, ...$testdata);

追記
5.3だとこの方法はだめですね。hide2e3rさんの方法を試してみてください。

投稿2016/05/18 06:12

編集2016/05/18 06:20
nnssn

総合スコア1221

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

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

退会済みユーザー

退会済みユーザー

2016/05/18 06:24

返答ありがとうございます(^o^) 動作できました(^o^) 本当にありがとうございます(^o^) 又機会があったらよろしくお願いします。
nnssn

2016/05/18 06:29

とりあえずは問題が解決したようで良かったです。 ところでベストアンサーを間違えていませんか、 自分の回答は5.3では動かないほうです。
退会済みユーザー

退会済みユーザー

2016/05/19 14:27

大変申し訳ありませんでした。hide2e3rさんと間違えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問