素朴な質問をさせてください。
変数"$test"があります。これをあるwebページにて$type条件で指定した要素が存在する数だけ回して表示しています。
<html>
<body>
<?
$testlist = gettestList($type);
foreach ($testlist as $test) {
?>
・
<?= hs($test["URL"]) ?>
・
<?
}
?>
<body>
<html>
このとき、foreach文中の($test["URL"])の値が
前のループの時と同じ値の場合は<?= hs($test["URL"]) ?>では何も表示させないようにしたい(その要素の値はなしにしたい)のです。
たとえば$testの$type条件で指定された要素の値(表示されるべき"URL"値)は下記があるとします。
http://oshiete1.goo.ne.jp/
http://oshiete1.goo.ne.jp/
http://hogehoge.com/
http://gehogeho.com/
このときのbody内の表示は
http://oshiete1.goo.ne.jp/
http://hogehoge.com/
http://gehogeho.com/
と表示されるようにしたいのです。
どうかご教授の程、よろしくお願いいたします。
No.1
- 回答日時:
> <?= hs($test["URL"]) ?>
これが何を意図しているのかと、gettestList関数の仕様とが不明であるため、
的外れな回答であるかもしれませんが、例えばこんな風にしてみてはいかがでしょうか。
<html>
<head></head>
<body>
<?php
// gettestList関数で取得したつもり
$testlist = array('http://oshiete1.goo.ne.jp/',
'http://oshiete1.goo.ne.jp/',
'http://hogehoge.com/',
'http://gehogeho.com/'
);
$prev = '';
foreach ($testlist as $test) {
if ($test != $prev) {
print "<a href=\"$test\">$test</a><br />";
}
$prev = $test;
}
?>
</body>
</html>
(注)インデントのため、全角空白を使っています。
No.2ベストアンサー
- 回答日時:
こういう方法はいかがでしょうか。
ループの中で配列変数(ここでは$found)の連想配列のキーとして$test["URL"]を使用し、配列にダミー値をセットします。
連想配列に指定したキーがあるかどうかを array_key_exists() で調べ、ない場合に「はじめて出てきた」と判断して hs($test["URL"])を出力し、$test["URL"]をキーとしてセットします。
<html>
<body>
<?
$testlist = gettestList($type);
unset($found);
$found[0]=1; //$foundを配列変数と定義するためのダミー行
foreach ($testlist as $test) {
?>
・
<?
if (!array_key_exists($test["URL"],$found)) {
print hs($test["URL"]);
$found[$test["URL"]] = 1;
}
?>
・
<?
}
?>
<body>
<html>
この回答への補足
非常にスマートな方法をありがとうございます。
この方法の場合、同じ値がをもつ要素が複数あるとき
最初に同じ値を持つ要素のみ、表示しないでくれますが、
次からまた複数表示されてしまいます。
例>
http://oshiete1.goo.ne.jp/
http://oshiete1.goo.ne.jp/
http://hogehoge.com/
http://gehogeho.com/
http://gehogeho.com/
表示される内容
http://oshiete1.goo.ne.jp/
http://hogehoge.com/
http://gehogeho.com/
http://gehogeho.com/
有効な方法をご教授いただいたにもかかわらず、
度々恐れ入りますが、
複数の値を持つ要素が複数あっても重複表示を防ぐ方法ありますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP php ログイン 1 2022/11/01 00:24
- Visual Basic(VBA) Excle VBA Findメソッドについて 3 2022/07/15 13:56
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
localhost/~.php で404エラー
-
cookieとhtaccessをつかったペ...
-
同じサーバー内で複数のHPのi...
-
PCに保存していた写真を見られ...
-
OneDriveのドキュメントにある...
-
linux duコマンドで困っています。
-
拡張子をつくる
-
MkDir パス名が無効です
-
テキストボックスのフォーカス...
-
Visual C++からftpを使う
-
参照元Excelファイルをバックグ...
-
FlashROMにデータを書き込むに...
-
Windowsのバッチファイルでcall...
-
バッチファイルで特定のファイ...
-
ディスクトップの移行できますか?
-
同名フォルダを作成し、そのフ...
-
シリアル通信でのread関数の戻り値
-
Teratermマクロの戻り値の取得失敗
-
データリーダーからのデータ読...
-
OpenFileDialogを使った後にも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ECCUBE4のページ管理でPHPを実...
-
VScodeでpythonプログラムの関...
-
caclsエラーについて。
-
javascriptとPHPを用いた自作ア...
-
index置いてもIndex of /が表示...
-
Zend Frameworkが機能しなくて
-
localhost/~.php で404エラー
-
IISでhtaccessの記載
-
MFC でどうやってネットページ...
-
XAMPPについて
-
PHP リファラの偽装で、ブック...
-
phpのエラーの意味がわかりませ...
-
PCに保存していた写真を見られ...
-
拡張子をつくる
-
同名フォルダを作成し、そのフ...
-
Excelで外部のファイルの場所を...
-
linux duコマンドで困っています。
-
MkDir パス名が無効です
-
<a href="file:///フォルダ名/...
-
OpenFileDialogを使った後にも...
おすすめ情報