Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Roberto Vinicius

[Resolvido] Erro ao apagar posição de Array

Recommended Posts

Pessoal é o seguite:

 

Tenho este código

 

$id = $_POST['idproduto']; // recebo o id do produto para ser retirado do array
$chave = array_search($id, $_SESSION['produtos']); //localiza o valor no array
unset($_SESSION['produtos'][$chave]); //apago a posição

 

Mas não está apagando. Será que preciso usar um laço? Ou o problema está no array_search?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quero remove-lo, pois tenho uma tabela com os valores do array. E um botão que submete o id de cada produto.

Então ao escolher um produto envio o id dele para esta pagina que citei.

Com o id quero encotrar o indice deste produto no array e apaga-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

<?php 
    $Produtos = Array(
           0 => Array(
                'id' => 5, 
                'produto' => 'um produto',
                'quantidade' => 'uma quantidade'
           )
    );
    $_POST['id'] = 5; // Exemplar
    for( $i = 0; $i < count( $Produtos ); ++$i ){
         if( in_array( $_POST['id'], $Produtos[ $i ] ) ){
             unset( $Produtos[ $i ] );
         } 
    }  
    print_r( $Produtos );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fiz assim:

 

$Produtos = Array(
           0 => Array(
                'idproduto' => 5, 
           )
    );
    $_POST['idproduto'] = 5;
    for( $i = 0; $i < count( $_SESSION['produtos'] ); ++$i ){
         if( in_array( $_POST['idproduto'], $_SESSION['produtos'] [ $i ] ) ){
             unset( $_SESSION['produtos'][ $i ] );
         } 
    }  

 

Não estou entendendo o porquê de atribuir esta posição 5 ao POST.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só para complementar. No seu caso, você removeria essa linha, para usar aquilo que vêm do formulário real.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simplifiquei pra seguinte forma:

 

$idproduto = $_POST['idproduto']; //id do produto a ser retirado

    for( $i = 0; $i < count( $_SESSION['produtos'] ); ++$i ){
         if(in_array($idproduto,$_SESSION['produtos'][$i]['idproduto']) ){ 
             unset( $_SESSION['produtos'][$i] );
         } 
    }  

 

 

Não vejo porque não funciona. Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim amigo:

<?php
    $idproduto = $_POST['idproduto']; //id do produto a ser retirado
    for( $i = 0; $i < count( $_SESSION['produtos'] ); ++$i ){
         if( in_array( $idproduto, $_SESSION['produtos'][ $i ] ) ){ 
             unset( $_SESSION['produtos'][ $i ] );
         } 
    }  

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.