Array of arrays

hi all,
i have an array called $results; if i print its values(using print_r($results)) i get the values bellow.
My problem is i need to get the value of key, its an array within an array. Does anyone know what im supposed to do.
Array ( [AATSMS] => Array ( [0] => 0 [1] => 2 ) [SUBMITRESULT] => Array ( [0] => 1 ) ) Vals array Array ( [0] => Array ( [tag] => AATSMS [type] => open [level] => 1 ) [1] => Array ( [tag] => SUBMITRESULT [type] => complete [level] => 2 [attributes] => Array ( [ACTION] => enqueued [KEY] => 17730529 [RESULT] => 1 [NUMBER] => 888888888 ) ) [2] => Array ( [tag] => AATSMS [type] => close [level] => 1 ) )
regards
Dawie de VilliersAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ray PaseurCommented:
Can you post that in the code snippet - it would be a lot easier to read!
0
Ray PaseurCommented:
Better yet, print the arrays this way and post the output in the code snippet.  Thanks, ~Ray
echo "<pre>\n";
var_dump($array_thing);

Open in new window

0
Dawie de VilliersAuthor Commented:
thnaks, here is the results in code snippet
array(3) {
  [0]=>
  array(3) {
    ["tag"]=>
    string(6) "AATSMS"
    ["type"]=>
    string(4) "open"
    ["level"]=>
    int(1)
  }
  [1]=>
  array(4) {
    ["tag"]=>
    string(12) "SUBMITRESULT"
    ["type"]=>
    string(8) "complete"
    ["level"]=>
    int(2)
    ["attributes"]=>
    array(4) {
      ["ACTION"]=>
      string(8) "enqueued"
      ["KEY"]=>
      string(8) "17731279"
      ["RESULT"]=>
      string(1) "1"
      ["NUMBER"]=>
      string(9) "888888888"
    }
  }
  [2]=>
  array(3) {
    ["tag"]=>
    string(6) "AATSMS"
    ["type"]=>
    string(5) "close"
    ["level"]=>
    int(1)
  }
}
 
Vals array
Array
(
    [0] => Array
        (
            [tag] => AATSMS
            [type] => open
            [level] => 1
        )
 
    [1] => Array
        (
            [tag] => SUBMITRESULT
            [type] => complete
            [level] => 2
            [attributes] => Array
                (
                    [ACTION] => enqueued
                    [KEY] => 17731279
                    [RESULT] => 1
                    [NUMBER] => 888888888
                )
 
        )
 
    [2] => Array
        (
            [tag] => AATSMS
            [type] => close
            [level] => 1
        )
 
)
mykeyvalue=Arraymykeyvalue=Arraymykeyvalue=Array

Open in new window

0
CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

JoachimMartinsenCommented:
This should do the trick:
$result[1]["attributes"]["KEY"];

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ray PaseurCommented:
I think what JoachimMartinsen posted will do the trick on this set of arrays, but I am curious - this looks like something that was interpreted from an XML file.  In that case (or if the significance of the tag called SUBMITRESULT matters) you might want a more generalized solution rather than just having the numeric index [1].  If you want to tell us more about it, there may be an easy-to-use programmatic solution available.

Best regards, ~Ray
0
Dawie de VilliersAuthor Commented:
thats true ray, im reading an xml file and convert it into an array.
i might have problems in future since i didnt quite understand whats happening here.
but the solution  i got from JoachimMartinsen: works for the particular problem.
Is there a better way of reading xml data
0
Ray PaseurCommented:
"Is there a better way of reading xml data" - maybe yes.  I like to use SimpleXML.  It makes the XML into an object and you can use OOP constructs and iterators to access the internals.  If you want to post a sample of the XML, I may be able to show you a way to get this information without the intermediate step of converting it into arrays.

Best regards, ~Ray
0
Dawie de VilliersAuthor Commented:
hi, here is the sample xml im reading:

<?xml version="1.0" ?>
- <aatsms>
<submitresult action="enqueued" key="3951103" result="1" />
</aatsms>
</span>
0
Ray PaseurCommented:
The ending "span" tag is not part of the XML.  Try running this and see what you get.  Please post back here if you have any questions, ~Ray
<?php // RAY_temp_xml_27.php
error_reporting(E_ALL);
echo "<pre>\n";
 
// TEST DATA FROM THE POST AT EE
$xml = '<?xml version="1.0" ?>
<aatsms>
<submitresult action="enqueued" key="3951103" result="1" />
</aatsms>';
 
// MAKE AN OBJECT
$obj = SimpleXML_Load_String($xml);
 
// VISUALIZE THE OBJECT
var_dump($obj);
 
// ITERATE OVER THE OBJECT
foreach ($obj as $thing)
{
// EXTRACT EACH FIELD AND CAST IT AS A STRING VARIABLE
    $action = (string)$thing["action"];
    $key    = (string)$thing["key"];
    $result = (string)$thing["result"];
// SHOW THE VARIABLES WE FOUND
    echo "\nACTION=$action KEY=$key RESULT=$result";
}

Open in new window

0
Dawie de VilliersAuthor Commented:
thanks guys,
0
Ray PaseurCommented:
@dawie: Going forward, please remember that you can split the points if you feel that more than on expert contributed useful information to the solution.  Thanks, ~Ray
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
PHP

From novice to tech pro — start learning today.