IF ELSEIF для массива внутри цикла while PHP

0

Я получил значение внутри тега literal в этом xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/xml-to-html.xsl"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  <head>
    <variable name="Kategori"/>
  </head>
  <results>
    <result>
      <binding name="Kategori">
        <literal datatype="http://www.w3.org/2001/XMLSchema#string">Gerak Kasar</literal>
      </binding>
    </result>
    <result>
      <binding name="Kategori">
        <literal datatype="http://www.w3.org/2001/XMLSchema#string">Gerak Halus</literal>
      </binding>
    </result>
  </results>
</sparql>

используя этот код:

$x = 0;
$kategori = array();
while ($x < count($hasilcek->results->result)) {
$kategori[$x]= $hasilcek->results->result[$x]->binding->literal;
$x++; }

Но когда я пытаюсь получить результат IF ELSEIF внутри WHILE, используя этот код:

$x = $x-1;
while ($x > -1){
if ($kategori[$x] = 'Gerak Kasar') {echo "Gerak Kasar";}
elseif ($kategori[$x] = 'Gerak Halus') {echo "Gerak Halus";}
else {echo "tidak ada";}
$x--;}

точно результат должен быть:

Герак Касар Герак Халус

но почему я получаю:

Герак КасарГерак Касар

Я думаю, что есть что-то не так, когда я делаю выбор IF для $ kategori [] внутри WHILE. Может ли кто-нибудь объяснить? Благодарю.

Теги:
arrays
if-statement
while-loop

2 ответа

0
Лучший ответ

вместо оператора сравнения вы используете оператор присваивания.

if ($kategori[$x] = 'Gerak Kasar') {echo "Gerak Kasar";}
elseif ($kategori[$x] = 'Gerak Halus') {echo "Gerak Halus";}

Поэтому измените его на

 if ($kategori[$x] == 'Gerak Kasar') {echo "Gerak Kasar";}
 elseif ($kategori[$x] == 'Gerak Halus') {echo "Gerak Halus";}

Потому что когда if ($kategori[$x] = 'Gerak Kasar') исполняется $kategori[$x] всегда становитесь Gerak Kasar. Вот почему вы снова получаете тот же результат.

0

Селамат Паги. :)

Попробуй это:

$x = $x-1;
while ($x > -1){
if ($kategori[$x] == 'Gerak Kasar') {echo " Gerak Kasar ";}
elseif ($kategori[$x] == 'Gerak Halus') {echo " Gerak Halus ";}
else {echo "tidak ada";}
$x--;}
  • 0
    Утро тоже: D Ух ты, можно, так что если строка должна удвоить ее равной ("==")? Спасибо
  • 0
    Сама-сама. Добро пожаловать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню