By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,819 Members | 2,073 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,819 IT Pros & Developers. It's quick & easy.

How can I read array values without using key/index value?

P: n/a

Folks,

Here's my problem:

I am createing an array in a file using the reslut of some PHP and MySQL
processing. An example of my array would be

examlpe['a']="example one";
examlpe['b']="example two";
examlpe['c']="example three";
examlpe['d']="example four";
examlpe['e']="example five";
examlpe['f']="example six";

The array key (or index) can have different values (always unique though).

I want to be able to reference/read, for example, the second and fourth
element in the array - but since my array keys/indexes are dynamic, my
standard script will only know the array is called 'example'...

So... using the example above, I would not know that the first element in
the array is element['a'].

My Question: Is there a method that I can use to reference any part of the
array, without knowing the elements key?

If not, is there a method to convert the array to have numeric keys?

Thanks,
Randell D.

Jul 20 '05 #1
Share this Question
Share on Google+
14 Replies


P: n/a
> I am createing an array in a file using the reslut of some PHP and MySQL
processing. An example of my array would be

examlpe['a']="example one";
examlpe['b']="example two";
examlpe['c']="example three";
examlpe['d']="example four";
examlpe['e']="example five";
examlpe['f']="example six";

The array key (or index) can have different values (always unique though).

I want to be able to reference/read, for example, the second and fourth
element in the array - but since my array keys/indexes are dynamic, my
standard script will only know the array is called 'example'...

So... using the example above, I would not know that the first element in
the array is element['a'].

My Question: Is there a method that I can use to reference any part of the
array, without knowing the elements key?

If not, is there a method to convert the array to have numeric keys?


Buy a book, man. You are dealing with several misunderstandings. Some people
enjoy being willfully ignorant. I sense that you are not one of those people.

In JavaScript, a collection of named values is called an object. The values are
unordered. You can use a for..in statement to retrieve the values and ignore the
odd ones, but the order is not guarenteed to be stable.

JavaScript has an array type which takes integer subscripts. This is probably
what you want. If so, where did you get the nutty idea that you had to use
letters as subscripts?

http://www.crockford.com/javascript/javascript.html

Jul 20 '05 #2

P: n/a
Lee
Randell D. said:


Folks,

Here's my problem:

I am createing an array in a file using the reslut of some PHP and MySQL
processing. An example of my array would be

examlpe['a']="example one";
examlpe['b']="example two";
examlpe['c']="example three";
examlpe['d']="example four";
examlpe['e']="example five";
examlpe['f']="example six";

The array key (or index) can have different values (always unique though).

I want to be able to reference/read, for example, the second and fourth
element in the array - but since my array keys/indexes are dynamic, my
standard script will only know the array is called 'example'...

So... using the example above, I would not know that the first element in
the array is element['a'].

My Question: Is there a method that I can use to reference any part of the
array, without knowing the elements key?

If not, is there a method to convert the array to have numeric keys?


The obvious solution seems to be to change your PHP code to create it
the way that you want to be able to access it:

example[0]="example one";
example[1]="example two";
example[2]="example three";
example[3]="example four";
example[4]="example five";
example[5]="example six";

or:

example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";

Jul 20 '05 #3

P: n/a

"Douglas Crockford" <no****@covad.net> wrote in message
news:27**************************@msgid.meganewsse rvers.com...
I am createing an array in a file using the reslut of some PHP and MySQL
processing. An example of my array would be

examlpe['a']="example one";
examlpe['b']="example two";
examlpe['c']="example three";
examlpe['d']="example four";
examlpe['e']="example five";
examlpe['f']="example six";

The array key (or index) can have different values (always unique though).
I want to be able to reference/read, for example, the second and fourth
element in the array - but since my array keys/indexes are dynamic, my
standard script will only know the array is called 'example'...

So... using the example above, I would not know that the first element in the array is element['a'].

My Question: Is there a method that I can use to reference any part of the array, without knowing the elements key?

If not, is there a method to convert the array to have numeric keys?
Buy a book, man. You are dealing with several misunderstandings. Some

people enjoy being willfully ignorant. I sense that you are not one of those people.
In JavaScript, a collection of named values is called an object. The values are unordered. You can use a for..in statement to retrieve the values and ignore the odd ones, but the order is not guarenteed to be stable.

JavaScript has an array type which takes integer subscripts. This is probably what you want. If so, where did you get the nutty idea that you had to use
letters as subscripts?

http://www.crockford.com/javascript/javascript.html


I'm broke - no work and little savings to carry me forward until a work
permit gets approved... Secondly, I have put a javascript book on my xmas
wish list... I'm reliant on old javascript books and online guides that I
read. I guess my nutty idea of using letters as subscripts might have
originated from PHP but, while I can't recall where, I thought I'd seen an
examlpe of someone who had done such (ie used letters (and not variables) to
identify elements in an array.

Anyway... I'll work with the for...in loop and see how that helps me... I
can't have PHP pre-assign the numeric subscript portion of the array as
several javascript files (containing arrays) are created in advance and web
pages include as many, or as few of them as are needed... I want to make
sure there are no duplicates over-write preexisting array elements....

Thanks for the help though...
Jul 20 '05 #4

P: n/a

"Lee" <RE**************@cox.net> wrote in message
news:br*********@drn.newsguy.com...
Randell D. said:


Folks,

Here's my problem:

I am createing an array in a file using the reslut of some PHP and MySQL
processing. An example of my array would be

examlpe['a']="example one";
examlpe['b']="example two";
examlpe['c']="example three";
examlpe['d']="example four";
examlpe['e']="example five";
examlpe['f']="example six";

The array key (or index) can have different values (always unique though).
I want to be able to reference/read, for example, the second and fourth
element in the array - but since my array keys/indexes are dynamic, my
standard script will only know the array is called 'example'...

So... using the example above, I would not know that the first element in
the array is element['a'].

My Question: Is there a method that I can use to reference any part of thearray, without knowing the elements key?

If not, is there a method to convert the array to have numeric keys?


The obvious solution seems to be to change your PHP code to create it
the way that you want to be able to access it:


I can't have PHP pre-assign the numeric subscript portion (what I call
element keys or indexes) of the array as several javascript files
(containing arrays) are created in advance and web pages include as many, or
as few of them as are needed... I want to make sure there are no duplicate
array elements which might over write an array element that might be
included from anothre file.

Thanks though...
Jul 20 '05 #5

P: n/a
"Randell D." <re**********************@and.share.com> wrote in
news:JIpCb.676473$6C4.175820@pd7tw1no:
I'm broke - no work and little savings to carry me forward until a
work permit gets approved... Secondly, I have put a javascript book on
my xmas wish list... I'm reliant on old javascript books and online
guides that I read. I guess my nutty idea of using letters as


Go over to <http://devedge.netscape.com/library/manuals/> and download the
"JavaScript 1.5 Core Guide" and "JavaScript 1.5 Core Reference."
Jul 20 '05 #6

P: n/a

"Eric Bohlman" <eb******@earthlink.net> wrote in message
news:Xn*******************************@130.133.1.4 ...
"Randell D." <re**********************@and.share.com> wrote in
news:JIpCb.676473$6C4.175820@pd7tw1no:
I'm broke - no work and little savings to carry me forward until a
work permit gets approved... Secondly, I have put a javascript book on
my xmas wish list... I'm reliant on old javascript books and online
guides that I read. I guess my nutty idea of using letters as


Go over to <http://devedge.netscape.com/library/manuals/> and download the
"JavaScript 1.5 Core Guide" and "JavaScript 1.5 Core Reference."


Thanks...
Jul 20 '05 #7

P: n/a
Lee
Randell D. said:


"Lee" <RE**************@cox.net> wrote in message
news:br*********@drn.newsguy.com...
Randell D. said:
>
>
>Folks,
>
>Here's my problem:
>
>I am createing an array in a file using the reslut of some PHP and MySQL
>processing. An example of my array would be
>
>examlpe['a']="example one";
>examlpe['b']="example two";
>examlpe['c']="example three";
>examlpe['d']="example four";
>examlpe['e']="example five";
>examlpe['f']="example six";
>
>The array key (or index) can have different values (always uniquethough). >
>I want to be able to reference/read, for example, the second and fourth
>element in the array - but since my array keys/indexes are dynamic, my
>standard script will only know the array is called 'example'...
>
>So... using the example above, I would not know that the first element in
>the array is element['a'].
>
>My Question: Is there a method that I can use to reference any part ofthe >array, without knowing the elements key?
>
>If not, is there a method to convert the array to have numeric keys?


The obvious solution seems to be to change your PHP code to create it
the way that you want to be able to access it:


I can't have PHP pre-assign the numeric subscript portion (what I call
element keys or indexes) of the array as several javascript files
(containing arrays) are created in advance and web pages include as many, or
as few of them as are needed... I want to make sure there are no duplicate
array elements which might over write an array element that might be
included from anothre file.


If your PHP code creates them in this form:
example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";

Then each one will absolutely have a unique number, representing
the order in which it was loaded, regardless of how many different
files they come from.

Jul 20 '05 #8

P: n/a
> > Buy a book, man. You are dealing with several misunderstandings.
Some people enjoy being willfully ignorant.
I sense that you are not one of those people.
I'm broke - no work and little savings to carry me forward until a work
permit gets approved... Secondly, I have put a javascript book on my xmas
wish list... I'm reliant on old javascript books and online guides that I
read. I guess my nutty idea of using letters as subscripts might have
originated from PHP but, while I can't recall where, I thought I'd seen an
examlpe of someone who had done such (ie used letters (and not variables) to
identify elements in an array.


You are breaking my heart. That is about the saddest story I have ever seen in
this newsgroup.

Jul 20 '05 #9

P: n/a
Lee wrote:
example[0]="example one";
example[1]="example two";
example[2]="example three";
example[3]="example four";
example[4]="example five";
example[5]="example six";

or:

example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";


Oh my. Why not

var example =
["example one",
"example two",
"example three",
"example four",
"example five",
"example six"];

?
PointedEars
Jul 20 '05 #10

P: n/a
Thomas 'PointedEars' Lahn wrote:
Lee wrote:
example[0]="example one";
example[1]="example two";
example[2]="example three";
example[3]="example four";
example[4]="example five";
example[5]="example six";

or:

example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";


Oh my. Why not

var example =
["example one",
"example two",
"example three",
"example four",
"example five",
"example six"];

?

PointedEars


Or, if you add elements in several "blocks" and can't always
create a new Array:

var a = new Array(); // [];
a.push(
"example one",
"example two",
"example three",
"example four",
"example five",
"example six"
);
// more code
a.push(
"example seven",
"example eight"
);

--
| Grant Wagner <gw*****@agricoreunited.com>

* Client-side Javascript and Netscape 4 DOM Reference available
at:
*
http://devedge.netscape.com/library/...ce/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/a...ence_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-deve...upgrade_2.html
Jul 20 '05 #11

P: n/a
Grant Wagner wrote:
Thomas 'PointedEars' Lahn wrote:
Lee wrote:
example[0]="example one";
example[1]="example two";
example[2]="example three";
example[3]="example four";
example[4]="example five";
example[5]="example six";

or:

example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";


Oh my. Why not

var example =
["example one",
"example two",
"example three",
"example four",
"example five",
"example six"];

?

PointedEars


Or, if you add elements in several "blocks" and can't always
create a new Array:

var a = new Array(); // [];
a.push(
"example one",
"example two",
"example three",
"example four",
"example five",
"example six"
);
// more code
a.push(
"example seven",
"example eight"
);


Forgot to mention, the Array object doesn't support the push() method in IE on the Mac,
and while it's mostly a dead browser, the problem can be worked around with:

var test = new Array();
if (typeof test.push == "undefined") {
function push() {
for (var i = 0 ; i < arguments.length ; i++) {
this[this.length] = arguments[i];
}
}
Array.prototype.push = push;
}

I'm sure this could be streamlined, but I don't have a Mac to test it on, and I'm sure
the above works because we've verified it.

if (typeof (new Array()).push == "undefined") {
Array.prototype.push = function() {
for (var i = 0 ; i < arguments.length ; i++) {
this[this.length] = arguments[i];
}
}
}

would probably work as well, although, as I said, I don't have a way to test
Array.prototype.push = function()...

--
| Grant Wagner <gw*****@agricoreunited.com>

* Client-side Javascript and Netscape 4 DOM Reference available at:
* http://devedge.netscape.com/library/...ce/frames.html
* Internet Explorer DOM Reference available at:
* http://msdn.microsoft.com/workshop/a...ence_entry.asp
* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-deve...upgrade_2.html
Jul 20 '05 #12

P: n/a

"Douglas Crockford" <no****@covad.net> wrote in message
news:83**************************@msgid.meganewsse rvers.com...
Buy a book, man. You are dealing with several misunderstandings.
Some people enjoy being willfully ignorant.
I sense that you are not one of those people.
I'm broke - no work and little savings to carry me forward until a work
permit gets approved... Secondly, I have put a javascript book on my
xmas wish list... I'm reliant on old javascript books and online guides that I read. I guess my nutty idea of using letters as subscripts might have
originated from PHP but, while I can't recall where, I thought I'd seen an examlpe of someone who had done such (ie used letters (and not variables) to identify elements in an array.


You are breaking my heart. That is about the saddest story I have ever

seen in this newsgroup.


Smart ass!
Jul 20 '05 #13

P: n/a

"Thomas 'PointedEars' Lahn" <Po*********@web.de> wrote in message
news:3F**************@PointedEars.de...
Lee wrote:
example[0]="example one";
example[1]="example two";
example[2]="example three";
example[3]="example four";
example[4]="example five";
example[5]="example six";

or:

example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";


Oh my. Why not

var example =
["example one",
"example two",
"example three",
"example four",
"example five",
"example six"];

?
PointedEars


Thanks... but I think I prefer the
example[example.length]="example one";
example[example.length]="example two";
example[example.length]="example three";
example[example.length]="example four";
example[example.length]="example five";
example[example.length]="example six";


It allows me to include more than one javascript file that contains
additional elements for the array which are appended without having to
re-jig the numeric indexes...

Jul 20 '05 #14

P: n/a
Randell D. wrote:
"Thomas 'PointedEars' Lahn" <Po*********@web.de> wrote in message
news:3F**************@PointedEars.de...


It is called attribution _line_.
Oh my. Why not

var example =
["example one",
"example two",
"example three",
"example four",
"example five",
"example six"];

?
[...]


Thanks... but I think I prefer the
> example[example.length]="example one";
> [...]


It allows me to include more than one javascript file that contains
additional elements for the array which are appended without having to
re-jig the numeric indexes...


You can use both without using indexes on assignment, provided that the
first comes first.
PointedEars

P.S.
Please trim your quotes: <http://www.netmeister.org/news/learn2quote.html>

And use an e-mail address, not spoiling existing namespaces
(here: share.com) and not pissing off communicative people:
<http://www.interhack.net/pubs/munging-harmful/>
Jul 20 '05 #15

This discussion thread is closed

Replies have been disabled for this discussion.