Torre
Posible duplicado:
Eliminar el elemento de la matriz si existe en una matriz de ‘palabras no permitidas’
Tengo una cadena dinámica que los clientes enviarán y quiero crear etiquetas delimitadas por comas a partir de ella:
$subject = "Warmly little in before cousin as sussex and an entire set Blessing it ladyship.";
print_r($tags = explode(" ", strtolower($subject)));
Y, sin embargo, quiero eliminar un grupo específico de palabras (como artículos definidos), pero quiero eliminar la clave y el valor de esa palabra si está en la matriz ampliada:
$definite_articles = array('the','this','then','there','from','for','to','as','and','or','is','was','be','can','could','would','isn\'t','wasn\'t', 'until','should','give','has','have','are','some','it','in','if','so','of','on','at','an','who','what','when','where','why','we','been','maybe','further');
Si una de estas palabras en el $definite_article
matriz están en el $tags
matriz elimine la clave y el valor de esa palabra y la nueva matriz tendrá estas palabras eliminadas. Haré que esta matriz sea utilizada por array_rand
tener un grupo aleatorio de palabras elegidas de él. He intentado muchas cosas para lograr mi resultado, pero nada hasta ahora. ¿Alguien puede ayudarme a encontrar una solución a esto?
Estás buscando array_diff
:
$subject = "Warmly little in before cousin as sussex...";
$tags = explode(" ", strtolower($subject));
$definite_articles = array('the','this','then','there','from','for','to','as');
$tags = array_diff($tags, $definite_articles);
print_r($tags);
Suena como un trabajo fácil para array_diff()
.
array array_diff ( array $array1 , array $array2 [, array $... ] )
compara
array1
contraarray2
y devuelve la diferencia.
Lo que básicamente significa que volverá array1
después de haber sido despojado de todos los valores que existen en array2
.
-
array_diff()
conservará las claves de matriz originales [ofarray1
], que es lo que hace que esta afirmación sea verdadera. Puede o no querer esto, pero es algo a tener en cuenta.– Jasón
31 de mayo de 2015 a las 9:55
-
array_diff() conservará las claves de matriz originales [of array1] – simplemente envuélvalo en array_values - esto restablecerá nuevas claves de matriz: Ejemplo: $new_array=array_values(array_diff($array1, $array2));
– realmag777
4 de enero de 2018 a las 15:57
Busque array_diff () en el manual
– GordonM
14 mayo 2012 a las 19:43
mire array-diff-key () y el enlace de referencia [ php.net/manual/en/function.array-diff-key.php ]
– manish1706
2 de agosto de 2016 a las 7:45