Re: associative arrays

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 02/11/2021 21:21, JEFFRY KILLEN wrote:

On Nov 2, 2021, at 1:03 PM, Tedd Sperling <tedd.sperling@xxxxxxxxx> wrote:



On Nov 2, 2021, at 2:25 PM, Christoph M. Becker <cmbecker69@xxxxxx> wrote:

On 02.11.2021 at 07: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)

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.
The squirrel doesn't ask the branch how to get to the trunk or to the
ground, though.  Instead, it remembers its way so far. :)

--
Christoph M. Becker
Not quite, a better analogy would be the squirrel doesn’t know on what branch his father found his mother.

More specifically, an array inside another array doesn’t know it’s inside another array. In fact, it’s simply a memory address that can only be located via an index inside another array, which is yet another memory address. Ask any memory address where it is and it can answer you, but it can’t offer much more information other than what it is — after all, it’s just a memory address.

If you want data to tell you what data proceeded it, then look into a double linked-list. That might solve your problem.

Cheers,

Tedd

Tedd Sperling
tedd.sperling@xxxxxxxxx
Yes, the squirrel analogy is a weak analogy. But like a file system, the array is a tree structure, as I
understand it. Code or user can navigate around the file system paths using '..', which refers to the
parent directory of the current directory.

But where memory is concerned, in order to get to a particular branch, or object/array property
the path has to already be known. Or recursive processing can hunt for a property and save
what it finds for future reference. But that is the rub. It will have to save the property chain as
a string. Then future reference has to use eval on the string to get the value or properties stored
there. At least that is true for javascript and working with both, I am concerned with being able
to translate from one to another. I presume that php works in a similar way: IE nested properties
can be found with recusive search. But the chain of properties would have to saved as  a string
for future reference. And eval would have to be used to get to the value(s) and/or sibling properties.
represented by the string.

Or is there another way?

I appreciate this exchange. Thank you
JK

You have your understanding of arrays wrong. An array is nothing like a tree structure, no matter how you think of them. A file tree would use a doubly linked list, as Tedd pointed out. These are effectively lists of objects, each one references it's parents, children, or siblings, within the list.

Arrays are dumb lists, each element contains no reference to what went before, or after, and has no understanding or concept of a "parent". They're so dumb that internally PHP uses an internal pointer when traversing an array, and you can use functions like current(), next(), and reset(), to manage that pointer.

If you need that kind of capability, then you need objects, not arrays.

--
Ashley Sheridan
https://www.ashleysheridan.co.uk



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux