Probably very easy to do, but for some reason...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • paulf.johnson@gmail.com

    Probably very easy to do, but for some reason...

    Hi,

    For some reason, my brain has gone to mush on a couple of things. Any
    help would be appreciated.

    I have an array and a field passed into a function (call it $v) which
    is a string composed of comma sep values.

    foo = array("one"=>1, "two", "three", "four", "five");
    $ex = explode("," $v);
    $newtext = "";
    foreach ($ex as $e)
    {
    if ($e != "0")
    $newtext .= " : " . $foo[$e];
    }

    The problem is that $e here is not being interpreted how I'd expect
    (I'd assume it to be a number). Do I need to cast $e as an int or is
    there something I'm missing?

    A related problem comes from an sql query.

    mysql_fetch_row s returns an array (bar). I pass this to another
    function. Next I try to iterate through.

    The array appears to be a 2D array.

    for ($m = 0; $m < count($bar); $m++)
    {
    for ($i = 0; $i < sizeof($bar[0]); $i++)
    {
    echo $bar['0']['3']; // works fine
    echo $bar['0'][$i]; // doesn't work - same reason as above I'd
    imagine
    }
    }

    Probably a really simple answer, but one I can't figure out.

    Final one - inserting an array into a table. I can't see anything
    about this, but if I have an array which marries up exactly with the
    fields in a table, can I just use "insert into tablename(*) values
    ($array) where ID=some_id"?

    Thanks for helping me on these!

    TTFN

    Paul
    --
    Sie können mich aufreizen und wirklich heiß machen!
  • petersprc

    #2
    Re: Probably very easy to do, but for some reason...

    Hi,

    On Jul 29, 1:58 pm, paulf.john...@g mail.com wrote:
    Hi,
    >
    For some reason, my brain has gone to mush on a couple of things. Any
    help would be appreciated.
    >
    I have an array and a field passed into a function (call it $v) which
    is a string composed of comma sep values.
    >
    foo = array("one"=>1, "two", "three", "four", "five");
    $ex = explode("," $v);
    $newtext = "";
    foreach ($ex as $e)
    {
    if ($e != "0")
    $newtext .= " : " . $foo[$e];
    >
    }
    >
    The problem is that $e here is not being interpreted how I'd expect
    (I'd assume it to be a number). Do I need to cast $e as an int or is
    there something I'm missing?
    You may want to do $e !== '0' to match the value and type exactly
    without type conversions. You might occasionally get slightly
    unintuitive results with regular comparison, e.g.: The expression
    ('-000' == '0') is true.

    Try print_r on $e to check the unexpected result.
    A related problem comes from an sql query.
    >
    mysql_fetch_row s returns an array (bar). I pass this to another
    function. Next I try to iterate through.
    >
    The array appears to be a 2D array.
    >
    for ($m = 0; $m < count($bar); $m++)
    {
    for ($i = 0; $i < sizeof($bar[0]); $i++)
    {
    echo $bar['0']['3']; // works fine
    echo $bar['0'][$i]; // doesn't work - same reason as above I'd
    imagine
    }
    >
    }
    >
    Probably a really simple answer, but one I can't figure out.
    >
    Final one - inserting an array into a table. I can't see anything
    about this, but if I have an array which marries up exactly with the
    fields in a table, can I just use "insert into tablename(*) values
    ($array) where ID=some_id"?
    You can use MDB2_AUTOQUERY_ INSERT to compose and execute a DML
    statement from a value array.
    Thanks for helping me on these!
    >
    TTFN
    >
    Paul
    --
    Sie können mich aufreizen und wirklich heiß machen!

    Comment

    Working...