Well, it seems a bit unnecessary, is all. What you're getting now is an array like
$links = array(
array('Home'=>'index.php'),
array('Business Card'=>'bcard.php'),
...
);
I'd've thought a more useful (and extensible) arrangement would be
$links = array(
array('label'=>'Home', 'url'=>'index.php'),
array('label'=>'Business Card', 'url'=>'bcard.php'),
....
);
Referring to the displayed label as $links[4]['label'], and the corresponding url as $links[4]['url']. The addition of a third "category" field would be obvious, and you'd still be free to add further fields.
The only thing is that numeric index. If the labels are unique (no two links have the same label), then you can ditch the numeric index and the label attribute, and index by the label:
$links = array(
'Home'=>array('url'=>'index.php', 'category'=>'main'),
'Business Card'=>array('url'=>'bcard.php', 'category'=>'contact'),
...
);
And then you can locate the Home page's URL by referring to $links['Home']['url'] and its category by $links['Home']['category']. Again, further extensibility is ensured.
They could be written out in much the same way as you are:
$links['Home']['url']='index.php'; $links['Home']['category']='main';
...
Or in exactly the same way as I do above (I've just made a wee test and found that PHP will tolerate a stray comma just before the ')' that ends an array.), or the obvious half-way version:
$links['Home']=array('url'=>'index.php', 'category'=>'main');
But if what you've got is already working then - well - don't change what's not broken - at least, not until your client tells you to 😉