вот есть 2 верхних массива. У первого ключи четные, у второго нет. Нужно сложить их так, что бы получалось ()()() . Т.е ключи как бы встали по порядку.
Пробовал и просто сложить 2 массива, пробовал и array_merge, результат постоянно как на скрине.
$text = "THE SOFTWARE IS PROVIDED, WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCL(UDING BUT NOT LIMITED TO THE WARRAN)TIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, (TORT O(R OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER) DEALIN)GS IN
THE SOFTWARE.";
preg_match_all('|[()]|', $text, $array);
foreach($array as $value){
foreach($value as $filter){
if($filter == "("){
$open[] = '(';
} else {
$close[] = ')';
}
}
}
$count_open = count($open);
$count_cloase = count($close);
for($i=0, $w = 0;$i < $count_open;$i++,$w+=2){
$q[] = 0 + $w;
}
for($i=0, $e=0; $i < $count_cloase;$i++, $e+=2){
$r[] = 1+$e;
}
$t = array_combine($q, $open);
$y = array_combine($r, $close);
$result = array_merge($t,$y);
echo '<pre>';
var_dump($t);
echo '</pre>';
echo '<pre>';
var_dump($y);
echo '</pre>';
echo '<pre>';
var_dump($result);
echo '</pre>';