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

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

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

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

Q&A

解決済

2回答

597閲覧

php  array_serchで要素を数字にしてその数以上を表示させたい場合

oitama

総合スコア8

PHP

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

0グッド

0クリップ

投稿2020/04/24 02:26

編集2020/04/24 02:41

前提・実現したいこと

array_serchで20以上の配列を出力したい場合、以下のコードを書きました。結果何も表示されませんでした。
20以上の要素を持った配列を出力したい場合どうしたらよいでしょうか?

######標準入力
1
2
3
4
5

該当のソースコード

while($a=fgets(STDIN)) {
$b = $a*5;
$array[]=$b;
}

$result =array_search('>=20',$array) ;
print_r($result);

####出力結果
何も表示されない

###期待する出力
3 4

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

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

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

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

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

m.ts10806

2020/04/24 02:32

>array_serch コード外でも気にしてください。 また、前も指摘しましたがコードはマークダウンの機能を利用してご提示ください。 https://teratail.com/questions/238564
kei344

2020/04/24 03:02

回答が付いた質問の編集は慎重に行ってください。質問文のコードについて回答にて指摘があった場合は「追記」し、元のコードを編集する場合も「直したこと」がわかるようにしてください。後から見た人から見て、現在回答されておられる方の回答が「無いコードに対しての指摘」になり、意味がわからなくなります。
m.ts10806

2020/04/24 03:53 編集

(2回目) >array_serch コード外でも気にしてください。 また、前も指摘しましたが(3回目)コードはマークダウンの機能を利用してご提示ください。 https://teratail.com/questions/238564
guest

回答2

0

ベストアンサー

$b = $a*5;

$array[]=$e;

aを5倍してbに入れているのに、arrayにはeをいれていますね

投稿2020/04/24 02:35

yambejp

総合スコア116724

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

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

yambejp

2020/04/24 02:39

$array=[]; for($i=1;$i<=5;$i++){ $array[]=$i*5; } $reslut=array_keys(array_filter($array,function($x){ return $x>=20; })); print_r($reslut);
oitama

2020/04/24 02:47 編集

ありがとうございます! ちなみに出力結果が Array ( [0] => 3 [1] => 4 ) となるのですが、これを番号の 0 ,1 とだけ出力するにはどうしたらよいでしょうか?
yambejp

2020/04/24 02:56 編集

> 期待する出力 3 4 じゃないんですか?こういうことですかね? $array=[]; for($i=1;$i<=5;$i++){ $array[]=$i*5; } $reslut=implode(",",array_keys(array_filter($array,function($x){ return $x>=20; }))); print_r($reslut);
oitama

2020/04/24 03:44

ありがとうございます。わたしの勘違いだったみたいです。 ちなみに return $x>=20; この20を変数で定義し20の部分を変数に変え実行してみたら エラーになってしまうのですが、変数ではできないのでしょうか?
yambejp

2020/04/24 03:48

変数を渡したい場合は、useを使います $min=20; $array=[]; for($i=1;$i<=5;$i++){ $array[]=$i*5; } $reslut=implode(",",array_keys(array_filter($array,function($x) use($min){ return $x>=$min; }))); print_r($reslut);
oitama

2020/04/24 04:23

ありがとうございます!解決することができました!
guest

0

関数のドキュメントは読みましたか?利用している関数の使用方法は間違っています。
array_search

配列のフィルタ用途であれば、別の関数を使用するのが適切です。
例)array_filter

関数を使用しなくても、foreachで回し、条件に合致したものだけ表示してもよいかと。

投稿2020/04/24 02:33

編集2020/04/24 02:38
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問