IF ELSE IF for array inside While loop PHP
IF ELSEIF fo array inside While loop PHP
我在这个 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--;}
确切的结果应该是:
Gerak
Kasar
Gerak
Halus
但为什么我得到:
Gerak KasarGerak Kasar
我认为我在 WHILE 中为 $kategori[] 进行 IF 选择时有问题。谁能解释一下?谢谢。
您使用的不是比较运算符,而是赋值运算符。
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
。这就是为什么您再次得到相同结果的原因。
早上好。 :)
试试这个:
$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--;}
我在这个 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--;}
确切的结果应该是:
Gerak Kasar Gerak Halus
但为什么我得到:
Gerak KasarGerak Kasar
我认为我在 WHILE 中为 $kategori[] 进行 IF 选择时有问题。谁能解释一下?谢谢。
您使用的不是比较运算符,而是赋值运算符。
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
。这就是为什么您再次得到相同结果的原因。
早上好。 :)
试试这个:
$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--;}