• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1022
  • Last Modified:

compare array to string

Hi all,
I have a php mysql app I am working on.  I have a string from a field in mysql and I also have a array from a mysql query.  The array has an ID and a Name field.  The string is a ~ delimited list of ID (the same ID's from the query.  What I am trying to do, is when I explode my string, I want to replace the ID from the string with the Name from the array using the arrays ID to match with the string ID.
Hope this makes sense... here's what I have so far.
// my array:
$query="SELECT * FROM department";
$result=mysql_query($query);
$deptArray = array();
while($row = mysql_fetch_array($result))
{
$a1 = array($row[department_id] => $row[department_name], $row[department_id]);
$deptArray = array_merge($a1, $deptArray);
}
 
//my string so far (not quite working)...
$str = $dealers_type;
$str2 = substr($str, 0, -1);
$data = explode("~",$str2);
foreach($data as $k => $v)
{
echo $deptArray[$v].' = '.[department_name.'<br>';
}

Open in new window

0
newbe101
Asked:
newbe101
  • 6
  • 4
1 Solution
 
hieloCommented:
Wow. I'm sure if this had been explained in English it would have been simple to solve!
0
 
hieloCommented:
Why do you have:
$a1 = array($row[department_id] => $row[department_name], $row[department_id]);

you already have the department_id -- it's the key.  Did you simply mean:
$a1 = array($row[department_id] => $row[department_name] );

0
 
hieloCommented:
my guess would be:
// my array:
$query="SELECT * FROM department";
$result=mysql_query($query);
$deptArray = array();
while($row = mysql_fetch_array($result))
{
	$a1 = array($row['department_id'] => $row['department_name'] );
	$deptArray = array_merge($a1, $deptArray);
}
 
//my string so far (not quite working)...
$str = $dealers_type;
$str2 = substr($str, 0, -1);
$data = explode("~",$str2);
foreach($data as $k => $v)
{
	echo $v . ' = '.$deptArray[$v].'<br>';
}

Open in new window

0
Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

 
newbe101Author Commented:
really close... the only problem is that the ID ends up being the key of the array and not the ID of the item.  Sorry about not explaining it well.
0
 
newbe101Author Commented:
Because $v ends up being the key for the array, rather than the ID of the item, everything is mixed up.
0
 
newbe101Author Commented:
Here is some code to explain what is happening now... look at the code and you will see that the array key is not the ID for the department.
//multiselect box (this is where the numbers for $dealers_type come from
 
<option value="1~">Accounting and Billing</option>
<option value="9~">Consignment Center</option>
<option value="10~">Finance</option>
<option value="2~">Human Resources</option>
<option value="6~">Merchandise Sales</option>
<option value="7~">Other Vehicle Sales</option>
<option value="5~">Porsche Sales</option>
<option value="4~">Replica Sales</option>
<option value="3~">Service and Repair</option>
 
// here is the print_r from my array:
Array ( 
[0] => Finance 
[1] => Consignment Center 
[2] => Other Vehicle Sales 
[3] => Merchandise Sales 
[4] => Porsche Sales 
[5] => Replica Sales 
[6] => Service and Repair 
[7] => Human Resources 
[8] => Accounting and Billing 
)

Open in new window

0
 
newbe101Author Commented:
you got me going in the right direction, thanks.
0
 
hieloCommented:
glad to help.
0
 
newbe101Author Commented:
take a look a the following question if you want to help me finish this up:
http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/Q_23866072.html
0
 
newbe101Author Commented:
nevermind about the other question... I figured it out.  Since the array worked perfectly if I made department_name => deparment_id, I ended up using $deptArray2 = array_flip($deptArray); to get around it.  Thanks again for your help.
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 6
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now