Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, boa noite, alguem poderia me ajudar a dar unset nessa session pelo id passado
Esse é o exemplo dos dados armazenados na mesma
array (size=2)
// 1º item do array
'5kg' =>
array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '5kg' (length=3)
2 => array (size=2)
0 => string '3' (length=1)
1 => string '1' (length=1)
3 => string '500.00' (length=6)
4 => string '950' (length=3)
// 2º item do array
'3kg' => array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '3kg' (length=3)
2 => array (size=3)
0 => string '3' (length=1)
1 => string '1' (length=1)
2 => string '2' (length=1)
3 => string '350.00' (length=6)
4 => string '945' (length=3)
Então, eu tenho uma identificação primária
'5kg' => '3kg' =>
Então minha url ficaria assim
carrinho/remover-item/exclusivo/ 5kg ou 3kg / id
E esse id vem do 2º array. Para remover somente o id passado pela url, usando o identificador 3 ou 5 kg .
????
unset($_SESSION['itens']['tipo_embalagem'] // preciso pegar o id
Alguém pode me ajudar?
Seria assim:
unset( $_SESSION[ 'itens' ] [ $embalagem ] [ $id ] );
Obrigado pela ajuda senhor Carlos Coelho, porém não obtive sucesso.
Ele continua a excluir a $embalagem, mas não exclui a $id.
Como os id's pertencem a um array, possa ser que seja isso
Por exemplo
// 2º item do array
'3kg' => array (size=5) // $embalagem
0 => string 'exclusivo' (length=9)
1 => string '3kg' (length=3)
2 => array (size=3)
0 => string '3' (length=1) // id
1 => string '1' (length=1) // id
2 => string '2' (length=1) // id
3 => string '350.00' (length=6)
4 => string '945' (length=3)
Usando da sua forma sr Carlos, a $id está pegando o índice dando um
var_dump($_SESSION[ 'itens' ] [ $embalagem ] [ $id ] );
por exemplo se a
$id = 3 ele pega 3 => string '350.00' (length=6)
//*///
Estou conseguindo passando assim
$indice = '2';
var_dump($_SESSION[ 'itens' ] [ $embalagem ][$indice] [ $id ] );
Mas o id = '3' não exclui, todos excluem menos ele. Ao que vi, está tudo correto
Deixa eu ver se entendi...
Você quer deletar tudo deste array, mas não o array em si. É isso?
Não, eu quero excluir cada id separado desse array, quando passado pela url.
E quando for o último id excluir a $embalagem correspondente com tudo dentro.
Estou conseguindo passando assim :
$indice = '2'; var_dump($_SESSION[ 'itens' ] [ $embalagem ][$indice] [ $id ] );
Já tô conseguindo falta pegar o valor correto
'5kg' => // $embalagem
array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '5kg' (length=3)
2 => // $indice
array (size=4)
0 => string '3' (length=1) // id
1 => string '1' (length=1) // id
2 => string '2' (length=1) // id
3 => string '4' (length=1) // id
3 => string '500.00' (length=6)
4 => string '1900' (length=4)
// Agora tenho que pegar esse valor
0 => string '3' (length=1) // id
a $id está pegando esse aki 0 =>
mas quero pegar esse aki '3'
Há tá, o id está no value e não no index do array.
Array de entrada
array (size=2)
'5kg' =>
array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '5kg' (length=3)
2 =>
array (size=2)
0 => string '3' (length=1)
1 => string '1' (length=1)
3 => string '500.00' (length=6)
4 => string '950' (length=3)
'3kg' =>
array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '3kg' (length=3)
2 =>
array (size=3)
0 => string '3' (length=1)
1 => string '1' (length=1)
2 => string '2' (length=1)
3 => string '350.00' (length=6)
4 => string '945' (length=3)
<?php
$weight = '3kg';
$index = 2;
$value = 1;
$search = array_search( $value, $array[ $weight ] [ $index ] );
unset( $array[ $weight ] [ $index ] [ $search ] );
var_dump( $array );
Array de saída
array (size=2)
'5kg' =>
array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '5kg' (length=3)
2 =>
array (size=2)
0 => string '3' (length=1)
1 => string '1' (length=1)
3 => string '500.00' (length=6)
4 => string '950' (length=3)
'3kg' =>
array (size=5)
0 => string 'exclusivo' (length=9)
1 => string '3kg' (length=3)
2 =>
array (size=2)
0 => string '3' (length=1)
2 => string '2' (length=1)
3 => string '350.00' (length=6)
4 => string '945' (length=3)Isso aí, muito obrigado sr Carlos Coelho, desde sua primeira sugestão, me fez abrir o horizonte...
Tô fazendo assim
if($acao == 'remover-item'):
A primeira validação tá correta, da
$embalagem // pegando 3kg ou 5 kg
mas não tô conseguindo pegar a $id , aki
unset($_SESSION['itens'][$embalagem],$id);
então ele está deletando todas os id's referentes a $embalagem