I have this string that I’m Getting from a Mysql Result:
Result1:
1/test3&2/test4&
Then, I have some ID from another mysql Result like this:
Result2:
$id = $row['id'];
Then I’m using an Explode in order to separate Result1:. Like I’m Getting this:
$nota3 = explode("&", $nota); 1/test3& 2/test4&
Now, I’m doing I’m using a foreach and then using another explode to separate the string by “/” delimiter.
foreach ($nota3 as $key) { $nota4 = explode("/", $key); }
The Result of this its something like this (for the firsts foreach iteration):
array(2) { [0]=> string(1) "1" [1]=> string(5) "test3" }
Ok, So I cannot Compare nota4[0]
with $id
from Result2:
Things that I’ve Tried:
Using if and verify every type, converts
nota4[0]
a$id
to stringTry to use in_Array
Try to use strcmp($var1, $var2)
I’m Missing something but I really dont know what.
Also, when I tried I cant put nota4[0]
into a html String like
$nota5= nota4[0]; echo "<p id='mic' class='text-dark bg-warning'>".$nota5."</p>";
Maybe its something silly but I tried everything without success.
Advertisement
Answer
You can make sure both are strings and trim and use a strict operator – even if it seems they are already that
$result1 = "1/test3&2/test4&"; $result2 = "1"; $id = trim((string) $result2); foreach ($nota3 as $key) { $nota4 = explode("/", $key); if (trim((string) $nota4[0]) === $id) { //... } }
Here’s another way to go about it. This will set up $result1 (or you can rename it) to become an associative array of key/value pairs, allowing you to loop through and compare a value like $result2
with a key id
in the $result1
array. Example link included.
<?php $result1 = "1/test3&2/test4&"; $result2 = "1"; $result1 = array_map(function ($a) { $tmp = explode("/", $a); return array('id' => $tmp[0],'name' => $tmp[1]); }, array_filter(explode("&", $result1))); print_r($result1);
now to get $result2
foreach ($result1 as $item) { if ($item['id'] == $result2) { // $value } }
Output of result1
[0] => Array ( [id] => 1 [name] => test3 ) [1] => Array ( [id] => 2 [name] => test4 )