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

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

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

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

Q&A

3回答

599閲覧

各配列のn番目の要素を、要素とする配列を作る。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

1クリップ

投稿2021/06/01 22:59

編集2021/06/02 00:13

log.txt

,6,3,-3
a,4,2,-2
b,4,2,-2

こうなっていて、これをfileしてから、explodeすると、
配列をたとえばa[]とすると、
a[0][1]=6
a[2][3]=-2
等となりますが、
この各a[n][3]の値を要素とする配列b[]はどのようにして作るのでしょうか、
b[0]=-3,b[1]=-2ということです。

できました、こうですかね。

php

1<?php 2$file_name = "score.txt"; /*読込ファイルの指定*/ 3$log4 = file( $file_name ); /*ファイルを全て配列に入れる*/ 4 5for($i = 0 ; $i < count($log4); $i++){ 6$log5[$i] = explode(",",$log4[$i]); 7array_push($log6,$log5[$i][3]); 8} 9 10print_r($log6); 11 12?>

更にこの要素(数字)の順位を取得したい場合、
array_searchで、数字検索するのが良策でしょうか?

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

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

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

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

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

m.ts10806

2021/06/01 23:57

>できました、こうですかね。 動かしたらわかるのでは 質問は何ですか? 独り言ならそれでいいでしょうけど、見るのは赤の他人。分かってますか?
退会済みユーザー

退会済みユーザー

2021/06/02 00:12

log.txt なのか score.txt なのか、思考がとっちらかってるとしか思えないのですが。
退会済みユーザー

退会済みユーザー

2021/06/02 00:14

できました、って言う割に、「Warning: array_push() expects parameter 1 to be array, null given」が出てるんですけど、だいじょうぶ?
m.ts10806

2021/06/02 00:23

>良策でしょうか? まず入門書通そう。 文字列や配列のように絶対におさえておくべきものをおさえずにできるもんでは無いです。
K_3578

2021/06/02 00:29

前の質問でも言及されてましたが恐らく複垢だと思いますね。 両者のログインした日を見比べれば露骨にわかります
guest

回答3

0

問題文に示されたコードを基に、こういうふうに準備しました:

ファイル名:341670.php

php

1<?php 2$file_name = "341670_score.txt"; /*読込ファイルの指定*/ 3$log4 = file( $file_name ); /*ファイルを全て配列に入れる*/ 4 5for ($i = 0; $i < count($log4); $i++){ 6 $log5[$i] = explode(",", $log4[$i]); 7 array_push($log6, $log5[$i][3]); 8} 9 10print_r($log6);

用意したファイル:341670_score.txt

,6,3,-3
a,4,2,-2
b,4,2,-2

で、実行すると:

Warning: array_push() expects parameter 1 to be array, null given in 341670.php on line 7

Warning: array_push() expects parameter 1 to be array, null given in 341670.php on line 7

Warning: array_push() expects parameter 1 to be array, null given in 341670.php on line 7

ちなみに、PHP 7.4.13 (cli) (built: Nov 24 2020 12:43:30) ( NTS Visual C++ 2017 x64 ) なんだが、
本当に動かしたコードなのでしょうか?
再現方法のミスがあれば、教えて下さい。

で。
最低限、配列として扱う変数の初期化を加えると:

php

1<?php 2$file_name = "341670_score.txt"; /*読込ファイルの指定*/ 3$log4 = file( $file_name ); /*ファイルを全て配列に入れる*/ 4 5$log5 = []; $log6 = []; 6for ($i = 0; $i < count($log4); $i++){ 7 $log5[$i] = explode(",", $log4[$i]); 8 array_push($log6, $log5[$i][3]); 9} 10 11print_r($log6);

Array ( [0] => -3 [1] => -2 [2] => -2 )

にはなりますな。

$log5をのちの処理で使わないのであれば、臨時のデータのために配列を使わなくてもいいと思うし、
forループは万能だけどこういうしょりのときはforeachループのほうが好みなので、
こう書き換えた:

php

1<?php 2$file_name = "341670_score.txt"; /*読込ファイルの指定*/ 3$scores = file( $file_name ); /*ファイルを全て配列に入れる*/ 4 5$subset = []; 6foreach ($scores as $s) { 7 $items = explode(",", $s); 8 $subset[] = $items[3]; 9} 10 11print_r($subset);

投稿2021/06/02 00:19

編集2021/06/02 00:31
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2021/06/02 00:31

あれ、こっちではできたのですが、なぜだろう。
guest

0

PHP

1$fp=fopen('scrore.txt','r'); 2while($row=fgetcsv($fp,1024)){ 3 $a[]=$row; 4 $b[]=$row[3]; 5} 6fclose($fp); 7print_r($a); 8print_r($b);

投稿2021/06/02 00:17

yambejp

総合スコア116835

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

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

0

配列をたとえばa[]とすると、

a[0][1]=6
a[2][3]=-2

なりません。少なくともPHPのコードではないです。
PHPとは何かから入ってください。

大前提が違うので、「どのように作るのか」と書かれても「言語違うんじゃない?」というところからになります。作業依頼にしても酷い。
せめて自分で書いてください。それがどんな不細工なコードでも回答者にはヒントになります。

投稿2021/06/01 23:01

編集2021/06/01 23:04
m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問