Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    cambiare valori in un foreach

    ho provato questo script preso direttamente da php.net

    Codice PHP:
    $arr = array(1234);
    foreach (
    $arr as &$value) {
       
    $value $value 2;
    }
    echo 
    $arr[1]; 
    questo script mi da errore, ed il motivo è il carattere & in as &$value, solo che se non uso il &, il foreach non mi cambia il valore dell'array...come posso fare?

  2. #2
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    il problema è questo:

    codice:
    Dal PHP 5 si può modificare facilmente gli elementi di una matrice anteponendo & a $value with &. Questo assegna un riferimento anzichè copiare il valore.
    il problema è che non ho php 5 e non posso usarlo sull'hoster, come posso fare?

    Premetto che ho un array di qesto tipo:
    Codice PHP:
    $a = array(
       
    "uno" => 1,
       
    "due" => 2,
       
    "tre" => 3,
       
    "diciassette" => 17
    ); 

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se devi solo moltiplicare per due i valori dell'array puoi usare array_map
    Codice PHP:
    <?php
    $arr 
    = array('uno'=>1,'due'=>2,'tre'=>3,'diciassette'=>17);
    function 
    moltiplica($n){
    return 
    $n*2;
    }

    $b array_map('moltiplica',$arr);
    echo 
    '<pre>';
    var_dump($b);
    echo 
    '</pre>';
    ?>

  4. #4
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da nicola75ss
    Se devi solo moltiplicare per due i valori dell'array puoi usare array_map
    Codice PHP:
    <?php
    $arr 
    = array('uno'=>1,'due'=>2,'tre'=>3,'diciassette'=>17);
    function 
    moltiplica($n){
    return 
    $n*2;
    }

    $b array_map('moltiplica',$arr);
    echo 
    '<pre>';
    var_dump($b);
    echo 
    '</pre>';
    ?>
    no, quello che devo fare è accedere fisicamente all'array originale, e senza php 5 questo non lo posso fare...non posso neanche usare un for, perchè l'array non ha indici numerici....

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da james
    no, quello che devo fare è accedere fisicamente all'array originale, e senza php 5 questo non lo posso fare...non posso neanche usare un for, perchè l'array non ha indici numerici....
    edit. cannato in pieno.

    scusa, ma in pratica cosa devi fare su questo array?

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    e fare così?

    foreach($arr as $chiave=>$valore)
    $arr[$chiave] = $valore * 2;

  7. #7
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da nicola75ss
    e fare così?

    foreach($arr as $chiave=>$valore)
    $arr[$chiave] = $valore * 2;



    Grazie!

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da james


    Grazie!
    ti stavi complicando la vita per niente.
    prego.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.