Re: associative arrays

[email protected] (Ashley Sheridan)
Newsgroups php.general
Message-ID <[email protected]>
On 02/11/2021 06:24, JEFFRY KILLEN wrote:
> Hello:
>
> I have been programming php and javascript for some time.
> I have not come on a way to navigate upward in javascript
> objects (it does not have associative arrays but objects are
> often used in the same way associative arrays are used)
>
> I would like to find out if there is a way of navigating a
> multidimensional associate array upward: I.E.:
>  From a child property/value to a parent property
>
> For instance:
>
> $sampleArray = [];
> $sampleArray['nuts'] = ['treeNuts'=>'walnut'];
> $sampleArray['fruit'] = ['notUsuallyFruit'=>['tomatoe'=>true, 'avacado'=>true, 'eggplant'=>true]];
>
> How would I get from 'tomatoe' to 'notUsuallyFruit', to 'fruit' and find 'nuts'? Is there a parent property implicit
> in associative arrays in php? I see next and prev in the manual under array functions. But I don't
> see anything that suggests moving upward to find a parent and parent syblings.
>
> I written lots of recursive code to search from the root to the tips of the branches.
>
> To create a metaphor: it is like a squirrel jumps from another tree and lands on a branch. It
> can find its way to the trunk and to the ground.
>
> Thank you for time and attention
> JK

An array has no concept of a parent, a nested array has no concept of it 
being nested within another array. You're used to this behaviour in 
Javascript because you're working with objects.

Why not use objects in your PHP code? They're more robust and have allow 
you more control over arrays. You can have your objects implement the 
various ArrayObject interfaces (like IterateAggregate, ArrayAccess, 
Countable, etc) to allow you to work with the object more like an array 
in your code where you need to. You can find more information on this in 
the manual: https://www.php.net/manual/en/class.arrayobject.php

This will allow you to create whatever methods you need on your entity 
classes to implement additional behaviours you require.

-- 
Ashley Sheridan
https://www.ashleysheridan.co.uk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.