php如何使用相同的键打印值

php如何使用相同的键打印值,php,Php,我有一些问题 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

我有一些问题

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")
?>
2) 我怎么能回应这个 伊梅尼斯:奥索巴·卡武 格拉戈尔:库哈·科帕 普里季耶夫: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;
}
}
$prethodna=null;
如果($m==“prikazVrstaRijeci”){
回显“Imenice:\n”;
foreach($rijeci作为$kljuc=>$vrijednost){
如果($vrijednost==“imenica”){
如果($prethodna){
回声“$prethodna”;
}
}
$prethodna=$vrijednost;
}
回声“
”; 回显“Glagol:\n”; foreach($rijeci作为$kljuc=>$vrijednost){ 如果($vrijednost==“glagol”){ if(比索前){ 回声“$prethodna”; } } $prethodna=$vrijednost; } 回声“
”; 回显“Pridjev:\n”; foreach($rijeci作为$kljuc=>$vrijednost){ 如果($vrijednost==“pridjev”){ 如果($prethodna){ 回声“$prethodna”; } } $prethodna=$vrijednost; } }

如何在原始数组中打印1.)2.)问题?这是可能的吗?

同一个键不能具有不同的值,您可以将数组更改为该值

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

 }

 ?>

没有办法让您的第一个示例按照您希望的方式工作。PHP数组只能包含给定键的单个值。数组上的
var\u 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";
}

希望这足以让您找到解决方案。

您不能在阵列中再次使用相同的键原始阵列将只有2个值。每次重新定义一个键时,它都会替换旧值。thx我假设,当我尝试打印整个数组时,它将只输出最后两个值。我想和你核实一下:)为什么不
$rijeci=array('tekst'=>array(…),'vrsta'=>array(…)
$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";
}