0

いくつか質問があります

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.) 質問を印刷するにはどうすればよいですか? これは可能ですか?

4

2 に答える 2

0

最初の例を思い通りに動作させる方法はありません。PHP 配列には、特定のキーに対して 1 つの値のみを含めることができます。配列の Aは、必要な値が存在しないため、それらを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";
}

うまくいけば、これで解決への道を歩むことができます。

于 2013-02-04T20:11:59.353 に答える
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 That List のこの配列で、次のように実行できます

 <?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 ",";

 }

 ?>
于 2013-02-04T20:05:50.410 に答える