Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Funzione implode() e array

    Ciao a tutti!

    Ho un questo array:
    $prova = array ("prova1" => "ciao", "prova2" => "ciao2", "prova3" => "", "prova4" => "ciao4");

    Vado ad eseguire una funzione implode():
    $prova2 = implode("-",$prova);

    Se stampo la variabile $prova2 ottengo: ciao-ciao2--ciao4 dato che prova3 non ha alcun valore al suo interno.

    E' possibile effettuare un'implode soltanto per i campi dell'array che contengono un valore? Insomma, vorre che $prova2 fosse uguale a ciao1-ciao2-ciao4

  2. #2
    credo che con le funzioni native no si possa fare...forse dovresti crearti tu una funzione usando foreach ed esaminando i vari valori verificare che non siano vuoti

  3. #3
    Originariamente inviato da SoulHome
    credo che con le funzioni native no si possa fare...forse dovresti crearti tu una funzione usando foreach ed esaminando i vari valori verificare che non siano vuoti
    Azz, allora sono rovinato dato che sono ancora mezzo analfabeta di php

    In pratica avevo trovato una soluzione per creare un motore di ricerca per il mio sito...
    In pratica a seconda dei valori che vengono dati dalla variabile $_GET avevo creato un array del genere:
    $array = (
    "marca" => "marca = $id",
    "categoria" => "categoria =$id"
    );
    e così via,
    poi creavo una variabile $search_criteria = implode(' AND ', $array) in modo che ottenevo qualcosa del genere:
    $search_criteria = "marca = 4 AND categoria = 2"
    da inserire nella query:

    SELECT * FROM tabelle WHERE $search_criteria;

    Solo che con implode, appunto, per i campi degli array vuoti mi aggiunge comunque un ' AND ' e quindi la query si sputtana...

  4. #4
    AL posto di fare implode , fai un FOR , cioe un ciclo , e crei una stringa contenente i valori diversi da null o vuoti.

    Per far cio' dentro la for usi una IF.

    Se leggi una guida base , troverai soluzione al tuo problema.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Codice PHP:
    $prova = array ("prova1" => "ciao""prova2" => "ciao2""prova3" => """prova4" => "ciao4");

    foreach(
    $prova as $chiave=>$valore)
        if(
    $prova[$chiave] == '')
           unset(
    $prova[$chiave]);

    $prova2 implode("-",$prova);
    echo 
    $prova2

  6. #6
    Perfetto! Grazie ragazzi!
    Non conoscevo questo uso del ciclo for:
    foreach($prova as $chiave=>$valore)
    Mi riferisco al $chiave=>$valore.
    Grazie ancora, non si smette mai di imparare!

  7. #7

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.