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

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

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

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

Q&A

解決済

3回答

3724閲覧

PHP foreachのキーを指定するには

hiro0208

総合スコア75

PHP

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

0グッド

0クリップ

投稿2017/04/12 02:06

編集2017/04/12 02:07

foreachのキーの初期値を
フォームの入力した値からスタートさせるには、
どうすればよいでしょうか?

foreachの中に、
$key += $start;
を追記しすれば、出力は変わりますが、
print_r($array_j)をした場合、キーは[0]からのスタートのままです。
基本的なことかと思いますが、ご教授お願いいたします。

php

1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>練習問題4</title> 6</head> 7<body> 8<form action="" method="post"> 9<input type="text" name="data" size="50"><br> 10配列名<input type="text" name="name" size="20"> 11キーの開始値<input type="text" name="start" size="1"> 12<input type="submit" name="btn" value="送信"> 13</form> 14<?php 15if (isset($_POST['btn'])) { 16 $data = $_POST['data']; 17 //配列名 18 $name = $_POST['name']; 19 //キーの開始値 20 $start = $_POST['start']; 21 //配列に値を分割格納 22 $array_j = explode(',', $data); 23 //配列のデータをforeachループで出力する。 24 foreach ($array_j as $start => $data) { 25 echo $name . '[' . $start . ']' . '&nbsp;=&nbsp;' . '\'' . $data . '\';' . '<br>' . "\n"; 26 } 27} 28?> 29</body> 30</html>

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

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

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

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

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

kei344

2017/04/12 04:16

まだ質問が「受付中」になっていますが、いったん「解決済」にされてはいかがでしょうか。また、解決されていないなら状況を質問文に追記ください。
guest

回答3

0

ベストアンサー

explodeで処理するとキーが0から始まる連続した整数で構成された
配列になるのでforで回すのが妥当ですが
PHPの配列は必ずしもkeyがきちんと並ぶわけではないので汎用的に考えるとこう

PHP

1$a=[0=>"a",10=>"b",2=>"c",5=>"d",3=>"e"]; 2$b=[]; 3$start=5; 4while(key_exists($start,$a)) array_unshift($b,array_pop($a)); 5print_r($b);

投稿2017/04/12 02:37

編集2017/04/12 02:40
yambejp

総合スコア114829

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

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

hiro0208

2017/04/12 03:14

$array_j = explode(',', $data);の下行で print_rして出力しましたらおっしゃる通り、キーが0からのスタートで確認できました。 ありがとうございます。
guest

0

foreachではなくforにすることをお勧めします。

投稿2017/04/12 02:11

Clor

総合スコア883

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

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

0

PHP

1for($i = $start; $i < count($data); $i++) {

ではダメなんでしょうか。

投稿2017/04/12 02:12

kunai

総合スコア5405

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問