Problem With Arrays Of Arrays, PHP 5.2.0, Windows

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

$aThePosts = array_change_key_case($_POST, CASE_LOWER);

define("CONTACT_IS_LOCAL", 0);
define("CONTACT_IS_REMOTE", 1);

/* $aWho contains an array of arrays (contact details)
 * array(
 * array(0, CONTACT_IS_LOCAL, "My Local Contact",
 *  "123 Any Street", "Suite 123",
 *  "Phoenix", STATE_ARIZONA, "01234-5678",
 *  array(800, "867-5309", "867-5309",
 *  "1-800-000-0000", "867-5309"),
 *  ""),
 *  array(1, CONTACT_IS_REMOTE, ...
function WhichContact() {
  global $aThePosts, $aWho;

  if (isset($aThePosts['idWho'])) {
    $iWhich = $aThePosts['idWho'];
    $iWhichCheck = $aWho[$iWhich][0];
    if ($iWhichCheck == $iWhich) {

I'm running into some strange problems. Sometimes,
$aWho[$iWhich][0] turns into the index number I expect,
and sometimes it returns "array[0]".

For instance, when I insert the following code after a call
to the above.

$iWho = WhichContact();
echo("<p class=\"pc\">$iWho</p>\n");
echo("<p class=\"pc\">" . $aWho[$iWho][0] . "</p>\n");
echo("<p class=\"pc\">$aWho[$iWho][0]</p>\n");

Inside the quotes, $aWho[$iWho] turns into "array" and
the string "[0]" gets added to it. Outside of the quotes
it returns the number I expect to get back.

But then when using that inside the function to verify
that a POST variable actually matches up with the index
of the client, the comparisons fail to match.

PHP 5.2.0 (cli) (built: Nov  2 2006 11:57:36)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies

Is there a way to check the internal storage type of any
particular variable?

The POST variable is a value from an HTML

<form action="./" method="POST">
<select name="idWho">
<option value="0">Local Contact</option>
<option value="1">Remote Contact</option>

Jim Carlock
Post replies to the group.

Site Timeline