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

您不能拥有具有不同值的相同键您可以将数组更改为此

$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 回答
0

没有办法让您的第一个示例按您希望的方式工作。PHP 数组只能包含给定键的单个值。你的数组上的Avar_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 回答