Bueno no se si te sirva este código, pero me divertí mucho haciendo esto, si le puedes sacar algún provecho bien y sino también. Lo que hace es combinar los array repetidos y suma sus stock. Sino te sirve tal vez a alguién le servirá en un futuro por eso lo dejo.
Saludos
Código PHP:
Ver original<?php
$codigo[0] = '666666666666X';
$texto[0] = 'Carro';
$stock[0] = 348;
$codigo[1] = '12345678910111X';
$texto[1] = 'Balón';
$stock[1] = 245;
$codigo[2] = '12345678910111G';
$texto[2] = 'Balón';
$stock[2] = 132;
$codigo[3] = '999999999999H';
$texto[3] = 'Ejemplo';
$stock[3] = 99;
$codigo[4] = '999999999999C';
$texto[4] = 'Ejemplo';
$stock[4] = 765;
$codigo[5] = '222222222222J';
$texto[5] = 'Ejemplo 2';
$stock[5] = 123;
$codigo[6] = '222222222222C';
$texto[6] = 'Ejemplo 2';
$stock[6] = 22;
$arr = array(); //Array auxiliar para sacar repetidos $nc = array(); //Array para almacenar los nuevos codigos $nt = array(); //Array para almacenar los nuevos textox $ns = array(); //Array para almacenar los nuevos stock $x = 0; //Variable contador de repetidos
//Recorremos 2 veces el array de los códigos para encontrar repetidos
foreach ($codigo as $i => $cod) {
foreach ($codigo as $i2 => $cod2) {
//Comparamos que los 10 primeros caracteres del codigo sean iguales
//y que no se haga agregado en el array auxiliar de repetidos.
//Si se cumple la condición sumamos un repetido.
$x++;
}
}
/*Si el numero de repetidos es mayor o igual a 2 entonces agregamos el codigo
al array auxiliar. Si no es repetido entonces agregamos los datos a los array
tal como vienen de los array originales.*/
if ($x >= 2) {
$arr[$i] = $cod;
} else if ($x == 1) {
$nc[] = $cod;
$nt[] = $texto[$i];
$ns[] = $stock[$i];
}
//Devolvemos el contador de repetidos a cero para seguir con el seguiente código.
$x = 0;
}
//Dividimos el array en parejas (No hice el ejemplo para encontrar más de 2 coincidencias)
//Recorremos todas las parejas de repetidos
foreach ($res as $clave => $valor) {
//Sacamos los indices del código uno para sacarle el texto.
//Sacamos los indices del código dos para poder sumarlos.
//Agregamos al array los numeros
$nc[] = $res[$clave][0];
//Agregamos al array los textox
$nt[] = $texto[$arrs];
//Sumamos los 2 codigos y agregamos al array el resultado.
$ns[] = $stock[$arrs] + $stock[$arrsc];
}
//Por último imprimo los array.
echo '<pre>';
echo '</pre>';