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