Вы используете как несериализованный, так и PHP немного неправильно:
<?php
define("my_const_arr", serialize(array("page_ids" => array("1234", "4123"))));
$page_id = "4123";
$a=unserialize(my_const_arr); // you need to usnerialize it before you can search for a specific key
if(in_array($page_id, $a["page_ids"])): ?>
<h1>Hello Stackoverflow</h1>
<?php endif; ?>
Я также хотел бы отметить, что константы не особенно полезны в приложении, которым вы можете управлять.Особенно, если этот код очень важен для вашего приложения.
<?php
$_myConstArr=array("page_ids" => array("1234", "4123"));
$page_id = "4123";
if(in_array($page_id, $_myConstArr["page_ids"])): ?>
<h1>Hello Stackoverflow</h1>
<?php endif; ?>
Вы не получите много накладных расходов при этом.Я думаю, что вызов serialize / unserialize часто даст вам нежелательную обработку.
Опубликуйте свой точный сценарий, и может быть доступно лучшее решение.