人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて次のスクリプトを作成してください。

配列に複数の都道府県の名前が入っていたとします。
その中で何番目かはわからないのですが、「東京」という文字があった場合、
その前の要素がすべて削除されるというスクリプトを作成してください。
ただし、各都道府県はダブらないという前提でお願いします。

たとえば、下記のような配列の場合、
$ken = array('北海道', '沖縄', '大阪', '東京', '愛知', '広島', '宮崎', '兵庫') ;
次のようになるということです。
$ken = array('東京', '愛知', '広島', '宮崎', '兵庫') ;

Vista,PHP5,XAMPP,Firefoxという環境でやっています。
以上、よろしくお願いします。


●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:firefox ken PHP VISTA XAMPP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GoldenDawn
●35ポイント
<?php
function cut_prev($ndl, $list) {
 do if ($list[0] == $ndl) break ;
 while (array_shift($list)) ;
 return $list ;
}

$ken = array('北海道', '沖縄', '大阪', '東京', '愛知', '広島', '宮崎', '兵庫') ;

print_r(cut_prev('東京', $ken)) ;
?>
◎質問者からの返答

ご回答ありがとうございます。

何度もお答えいただいてすみません。

助かりました。


2 ● zero-uhura
●35ポイント

こんなんでどうでしょうか?

(当方:Mac OS X 10.5.5 PHP 5.2.6)

<?php

// 広島が二つあります。
$kens = array('北海道', '沖縄', '大阪', '東京', '愛知', '広島', '宮崎', '広島', '兵庫') ;

// 東京以前を unset
$is_unset = true;
foreach ($kens as $k => $ken) {
if ($ken == '東京') $is_unset = false;
if ($is_unset) unset($kens[$k]);
}

// 重複した値を削除
$kens = array_unique($kens);

// 結果を出力
print_r($kens);

?>

結果

Array
(
 [3] => 東京
 [4] => 愛知
 [5] => 広島
 [6] => 宮崎
 [8] => 兵庫
)
◎質問者からの返答

ご回答ありがとうございます。

質問にはダブらないとしておきましたが、

それに対応していた方がより便利ですね。

ご配慮ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ