Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 80
  • Last Modified:

How to check if value is in an array

Hi,
I have an array I create from results of a soap call.
I'm having trouble trying to figure out how to catch it when a certain value doesn't exist: bestTrimName

I tried below but I get 'Undefined index: bestTrimName' when there isn't a value:
$vehicle = array(
'year'		=> $array['@attributes']['modelYear'],
'make'		=> $array['@attributes']['bestMakeName'],
'model'		=> $array['@attributes']['bestModelName'],
'trim'		=> ($array['@attributes']['bestTrimName'] ? $array['@attributes']['bestTrimName'] : '')
);

Open in new window

Not sure best way to handle this scenario?
thanks!
0
tjyoung
Asked:
tjyoung
1 Solution
 
hieloCommented:
'trim'		=> ( array_key_exists('bestTrimName', $array['@attributes'] ) ? $array['@attributes']['bestTrimName'] : '')

Open in new window

2
 
Pallavi GodseSubject Matter ExpertCommented:
Use in_array to check if value is in an array. Here's example below -
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>
1
 
Julian HansenCommented:
You can use isset
XML
<?xml version="1.0" encoding="UTF-8" ?> 
<vehicle modelYear="1996" bestMakeName="vw" bestModelName="Polo"></vehicle>

Open in new window

PHP
<pre>
<?php
if (!file_exists('t1483.xml')) {
  echo "File does not exist!";
  die();
}

$xml = simplexml_load_file('t1483.xml');

// Dump XML so we can see what is there
print_r($xml);

// Create our vehicle array
$vehicle = array(
  'year'    => xml_attribute($xml, 'modelYear'),
  'make'    => xml_attribute($xml, 'bestMakeName'),
  'model'   => xml_attribute($xml, 'bestModelName'),
  'trim'    => xml_attribute($xml, 'bestTrimName')
);

// Check the contents
print_r($vehicle);

// From http://php.net/manual/en/simplexmlelement.attributes.php#97266
function xml_attribute($object, $attribute)
{
  // Check if attribute exists and return it
  if(isset($object[$attribute]))
    return (string) $object[$attribute];
}
?>
</pre>

Open in new window

Working sample here
0
 
Ray PaseurCommented:
Best way to get a tested and working example would be to use var_export($array) and post that output in the code snippet here at E-E. Then we could copy the var_export() output exactly and show you the code that gives the exact response you need.  No guessing, no accidental omissions, Easy!
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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