我有一些问题
this is my orginal array and cood below **will not work** on this array
<?php
$rijeci=array ( "tekst"=> "osoba" ,"vrsta" => "imenica",
"tekst"=> "kuha" , "vrsta" => "glagol",
"tekst"=> "crnu" , "vrsta" => "pridjev",
"tekst"=> "kavu" , "vrsta" => "imenica",
"tekst"=> "kopa" , "vrsta" => "glagol")
?>
这是我改变的数组
<?php
$rijeci=array ( "tekst1"=> "osoba" ,"vrsta1" => "imenica",
"tekst2"=> "kuha" , "vrsta2" => "glagol",
"tekst3"=> "crnu" , "vrsta3" => "pridjev",
"tekst4"=> "kavu" , "vrsta4" => "imenica",
"tekst5"=> "kopa" , "vrsta5" => "glagol")
?>
1)我怎么能回应这个 osoba,kuha,crnu,kavu,kopa,
这将在我更改的数组中起作用
foreach($rijeci as $key => $var){
if($var != "imenica" && $var != "glagol" && $var != "pridjev" )
echo "$var " ;
2)我怎么能回应这个 Imenice:osoba kavu Glagol:kuha kopa Pridjev:crnu
这将在我更改的数组中有效,但还有其他方法可以打印吗?
$prethodna = null;
if($m=="prikazVrstaRijeci"){
echo "Imenice:\n" ;
foreach ($rijeci as $kljuc => $vrijednost){
if($vrijednost == "imenica"){
if($prethodna) {
echo "$prethodna ";
}
}
$prethodna = $vrijednost;
}
echo "<br />";
echo "Glagol:\n" ;
foreach ($rijeci as $kljuc => $vrijednost){
if($vrijednost == "glagol"){
if($prethodna) {
echo "$prethodna ";
}
}
$prethodna = $vrijednost;
}
echo "<br />";
echo "Pridjev:\n" ;
foreach ($rijeci as $kljuc => $vrijednost){
if($vrijednost == "pridjev"){
if($prethodna) {
echo "$prethodna ";
}
}
$prethodna = $vrijednost;
}
}
我如何打印1.)2.)我的原始数组中的问题?这有可能吗?
答案 0 :(得分:0)
您不能使用具有不同值的相同键,您可以将数组更改为此
$rijeci=array ("osoba" ,"imenica",
"kuha" , "glagol",
"crnu" , "pridjev",
"kavu" , "imenica",
"kopa" , "glagol")
现在这段代码工作
foreach($rijeci as $key => $var){
if($var != "imenica" && $var != "glagol" && $var != "pridjev" )
echo $var;
在这个Echo列表数组中你可以这样做
<?php
$rijeci=array ( "tekst1"=> "osoba" ,"vrsta1" => "imenica",
"tekst2"=> "kuha" , "vrsta2" => "glagol",
"tekst3"=> "crnu" , "vrsta3" => "pridjev",
"tekst4"=> "kavu" , "vrsta4" => "imenica",
"tekst5"=> "kopa" , "vrsta5" => "glagol")
foreach($rijeci as $key => $var){
switch( $var){
case "osoba":
echo $var;
break;
case "kuha":
echo $var;
break;
case "crnu":
echo $var;
break;
case "kavu":
echo $var;
break;
case "kopa":
echo $var;
break;
}
echo ",";
}
?>
答案 1 :(得分:0)
没有办法让你的第一个例子按照你想要的方式工作。 PHP数组只能包含给定键的单个值。数组中的var_dump()
会向您显示无法打印您想要的值,因为它们不在那里。但是,您可以使用嵌套数组,如下所示:
$rijeci=array ( array("tekst"=> "osoba" ,"vrsta" => "imenica"),
array("tekst"=> "kuha" , "vrsta" => "glagol"),
array("tekst"=> "crnu" , "vrsta" => "pridjev"),
array("tekst"=> "kavu" , "vrsta" => "imenica"),
array("tekst"=> "kopa" , "vrsta" => "glagol"));
foreach ($rijeci as $pair) {
print $pair['tekst'];
print " ";
print $pair['vrsta'];
print "\n";
}
您也可以在嵌套数组中使用命名索引,例如:
$rijeci = array(
'imenica' => array('osoba', 'kavu'),
'glagol' => array('kuha', 'crnu'),
'pridjev' => array('crnu'),
);
foreach ($rijeci as $vrsta => $stuff) {
print "$vrsta : ";
foreach ($stuff as $tekst) {
print "$tekst, ";
}
print "\n";
}
或者,您可以编写该循环:
foreach ($rijeci as $vrsta => $stuff) {
print "$vrsta : ";
print implode($stuff, ',');
print "\n";
}
希望这足以让你走上解决方案的道路。